IoT Middleware: بررسی درمورد موضوعات و فناوریهای فعال | IoT Middleware: A Survey on Issues andEnabling Technologies جدول مقالات آزادابزار تفکیک و ترجمه متون علمیمقالات اینترنت اشیاء
تماس با ما
 
بدان
 
امروز شنبه ، ۱۴۰۰/۰۷/۰۳
 
کلیه مقالات

IoT Middleware: بررسی درمورد موضوعات و فناوریهای فعال

IoT Middleware: A Survey on Issues andEnabling Technologies

IoT Middleware:

بررسی مسائل و فناوری های توانمند

خلاصه:

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

تحقق سیستم های IoT ادغام یکپارچه دنیای سایبر با دنیای جسمی ما را قادر می سازد و اساساً تعامل انسان را با جهان تغییر و تقویت خواهد کرد.

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

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

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

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

مقدمه اینترنت اشیاء (IoT) دامنه ای است که نشان دهنده هیجان انگیزترین انقلاب تکنولوژیکی بعد از اینترنت است [1] ، [2] ، [3] ، [4].

IoT فرصت ها و تأثیرات بی پایان ای را در هر گوشه سیاره ما به ارمغان می آورد.

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

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

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

IoT می تواند تولید را تغییر داده و آن را لاغرتر و باهوش تر جلوه دهد.

طبق اخبار CBS ، از سال 1989 نزدیک به 600 مورد خرابی پل در ایالات متحده رخ داده است.

تعداد زیادی از پل در هر ایالت واقعاً خطری برای عموم مسافرتی است.

سنسورهای با قابلیت IoT می توانند بر روی ارتعاشات و شرایط مادی در پل ها (و همچنین ساختمان ها و بناهای تاریخی) نظارت داشته باشند و هشدار اولیه ارائه می دهند که جان بسیاری از انسان ها را نجات می دهد.

IoT تقریباً در هر بخش صنعت قابل تصور ایجاد اختلال و نوآوری را ایجاد می کند.

در حالی که اینترنت اشیاء (IoT) پتانسیل ها و فرصت های هیجان انگیز متعددی را ارائه می دهد ، مدیریت مؤثر و کارآمد برای دستیابی به ادغام یکپارچه دنیای فیزیکی و فضای مجازی همچنان یک چالش برانگیز است [1] ، [5] ، [6].

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

به عنوان مثال ، انتقال ارتباط از راه دور پیام (MQTT) ، پروتکل محدودیت استفاده (CoAP) و BLE (بلوتوث کم انرژی) پروتکل های اتصال محبوب هستند که به طور خاص برای دستگاه های IoT طراحی شده اند.

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

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

به عنوان مثال ، در پروژه Global Sensor Network (GSN) [7] ، مفهوم سنسور مجازی ، که در XML مشخص شده و با یک بسته بندی مربوطه پیاده سازی شده است ، به عنوان انتزاع اصلی برای توسعه و اتصال دستگاه جدید IoT ارائه شده است.

در پروژه TerraSwarm [8] ، الگوی طراحی دسترسی که در Javascript اجرا شده است به عنوان انتزاع اصلی پیشنهاد می شود.

در پروژه Google Fit [9] ، هیچ نوع انتزاع خاصی از سطح بالا برای محصور کردن یک نوع دستگاه جدید ارائه نشده است.

این سیستم از قبل برنامه ریزی شده برای پشتیبانی از مجموعه ای ثابت از دستگاه های IoT ، که توسط API های انتقال نمایندگی دولتی (REST) ​​قابل دسترسی است [10].

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

پشتیبانی پیشرفته ترین سطح فعلی برای توسعه برنامه IoT ، برنامه خاصی است که معادل سناریویی است که در آن دستگاه IoT برای اتصال به اینترنت به یک مرورگر وب متفاوتی احتیاج دارد ، همانطور که توسط Zachariah و همکاران تکرار شده است. از اشیاء دارای مشکل دروازه است [11].

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

چندین نظرسنجی در مورد واسطه IoT منتشر شده است مانند [12] ، [13] ، [14] ، [15].

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

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

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

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

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

سپس ما درباره مشاهدات خود درمورد سه معماری مهم نرم افزاری IoT middleware بحث می کنیم و توضیحی از شباهت ها و تفاوت های بین این سه معماری (بخش سوم) ارائه می دهیم.

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

ما این سه نوع رابط میان افزار IoT را با ارائه نمونه ای از اجرای داده های سنسور Phidgets در GSN ، Google Fit و Ptolemy Accessor Host مقایسه می کنیم.

ما سپس چالشهای تحقیقاتی اصلی را در ایجاد واسطه IoT بیان می کنیم که یک دانشمند یا یک متخصص بهداشت را قادر می سازد یک برنامه IoT شبیه به BAC را تنظیم کند که قابل تنظیم ، باز و ایمن باشد (بخش V).

سرانجام ، ما در بخش ششم کار مروری را مرور و بحث می کنیم و برخی از سخنان نهایی را در بخش VII ارائه می دهیم.

II.USE پرونده برای Middleware IOT:

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

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

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

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

در این بخش ، بر اساس تجربه ما در زمینه اجرای داده های محیطی و نرم افزار IoT IoT که می تواند محتوای الکل خون (BAC) را با استفاده از داده های حسگر ساعت هوشمند پیش بینی کند ، نیاز به یک واسطه باز ، سبک ، ایمن ، IoT را ایجاد می کنیم [16].

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

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

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

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

در عوض ، بهتر است یک اندازه گیری قطعی از BAC یا به سادگی یک پاسخ باینری بدست آورید: مست یا مست نیست.

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

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

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

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

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

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

در دسترس بودن فضای محلی برای جلوگیری از تأخیرهای غیرقابل پیش بینی از انتقال بی سیم داده ها به ابر مهم است.

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

این کار پایان امنیت را از لبه به مرکز داده ابری می خواهد.

پس از جمع آوری داده ها ، داده ها در ابر پردازش می شوند تا مشخص شود آیا بین هر نوع مقادیر سنسور و مقادیر BAC ضبط شده رابطه وجود دارد.

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

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

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

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

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

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

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

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

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

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

داده ها معمولاً به صورت جریان نامحدود به ترتیب مهر دستگاه ها تحویل داده می شوند.

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

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

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

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

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

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

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

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

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

یک موتور کامپوزیت (همچنین در برخی سیستم ها موتور قاعده ای نامیده می شود) لازم است تا کاربران بتوانند خدمات آنالیز را از ابر ، از خدمات داده در سایر دروازه ها (PhidgetInterfaceKit ، Adruino) یا سایر دستگاه های IoT (دستگاه جرقه زنی اتومبیل) بدون سطح پایین ترکیب کنند. برنامه نويسي.

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

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

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

به طور خلاصه ، نیاز منطقی برای نظارت بر محیط زیست و نظارت بر BAC یکسان است.

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

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

چنین واسطه ای به یک دانشمند یا یک متخصص بهداشت کمک می کند تا یک برنامه IoT جدید را برای انجام جمع آوری داده ها و تجزیه و تحلیل مربوط به متن / خود بدون هیچ برنامه نویسی سطح پایین پیکربندی و تنظیم کند.

III.ARCHITECTURE خاورمیانه IOT:

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

نوع اول ، که ما به آن به عنوان یک راه حل مبتنی بر خدمات اشاره می کنیم ، عموماً معماری سرویس گرا (SOA) [17] را تصویب می کند و به توسعه دهندگان یا کاربران امکان می دهد طیف متنوعی از دستگاه های IoT را به عنوان خدمات اضافه یا مستقر کنند.

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

نوع سوم چارچوبی مبتنی بر بازیگر است که بر روی باز ، وصل و بازی معماری IoT تأکید می کند.

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

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

این یک معماری سه لایه است که توسط OpenIoT [18] ، یک پروژه اتحادیه اروپا برای استاندارد سازی سیستم عامل های IoT به تصویب رسیده است.

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

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

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

این سرویس ها از قسمت گردآوری داده های برنامه های IoT مانند BAC پشتیبانی می کنند ، اما بخش تحلیلی نیست.

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

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

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

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

به طور معمول ، این ویژگی ها به عنوان مجموعه ای از API در معرض دید قرار می گیرند.

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

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

یک معماری میان افزار IoT مبتنی بر بازیگران برای اولین بار در Terraswam [19] ، یک پروژه تحقیقاتی مشترک بین دانشگاه ها ، دولت و شرکت های خصوصی در ایالات متحده ارائه شده است.

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

بیرونی ترین دایره Sensory Swarm (سنسورها و محرک ها) است ، دایره میانی آن Mobile Access (دروازه هایی مانند تلفن هوشمند ، Raspberry Pi ، Swarmbox ، لپ تاپ) است و بیشترین دایره داخلی Cloud است.

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

شکل 4 این معماری را نشان می دهد.

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

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

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

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

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

سرویس میانی IoT مبتنی بر سرویس در سرورها یا ابر استفاده می شود.

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

سرویس میانی IoT مبتنی بر سرویس را می توان برای دسترسی محدود برای محافظت از داده های خصوصی و حساس تنظیم کرد.

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

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

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

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

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

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

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

Google Nest [20] نمونه بارز آن است.

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

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

در معماری های خدماتی و مبتنی بر بازیگر ، کاربران چگونگی ذخیره و ذخیره اطلاعات را انتخاب می کنند.

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

برنامه های IoT به طور معمول در یک محیط پویا و نامشخص کار می کنند.

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

این واسطه باید یک مؤلفه کشف سرویس را فراهم کند تا خدمات جدید بصورت فرصت طلبانه در دسترس قرار گیرند و سرویس های ناموفق به صورت پویا جایگزین شوند تا کیفیت خاصی از خدمات (QoS) تضمین شود.

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

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

IV.EXISTING IW سیستم های MiddleWare:

در این بخش ، تجزیه و تحلیل عمیق تری از توانایی های هر سه نوع IoT میانی از نظر i) انتزاعی که برای اتصال و دسترسی به وسایل فیزیکی ارائه می دهند ، ii) خدماتی که برای ترکیب انعطاف پذیر ارائه می دهند ، ارائه می دهیم. دستگاه ها و خدمات IoT ، iii) پشتیبانی از کشف خدمات ، IV) استفاده از حریم خصوصی و امنیت ایجاد و ارائه برنامه های IoT مشابه BAC.

در شکل 5 نمای کلی از واسطه های مختلف IoT که مورد مطالعه قرار گرفته ایم.

بسیاری از سیستم های IoT ، چارچوب ها یا واسطه های میانی به طور مداوم در حال توسعه هستند.

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

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

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

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

لیست کاملی از سیستمهای مرتبط با IoT را می توان در [21] یافت.

IoT Middleware مبتنی بر A.Service:

1) Hydra: سیستم Hydra [22] ، [23] یک پروژه 4 ساله است که توسط اتحادیه اروپا برای تهیه یک واسطه سرویس گرا برای سیستم های جاسازی شده شبکه تأمین می شود.

این پروژه از سال 2014 به LinkSmart تغییر نام داد.

سرویس وب به عنوان اصلیترین انتزاع برای درج دستگاه های فیزیکی ناهمگن در برنامه ها و کنترل هر نوع دستگاه فیزیکی صرف نظر از فن آوری های شبکه مانند Bluetooth ، RF ، ZigBee ، RFID ، WiFi و غیره ارائه می شود.

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

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

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

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

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

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

Hydra یک SDK با معماری مبتنی بر مدل معنایی افزایشی را برای ایجاد برنامه های دامنه های پشتیبانی شده فراهم می کند.

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

Hydra از استفاده از یک استاندارد همگن (خدمات وب) برای پرداختن به ناهمگونی دستگاه های IoT دفاع می کند.

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

تمام داده های جمع آوری شده برای پردازش و بایگانی به واسطه Hydra منتقل می شوند.

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

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

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

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

2) شبکه های حسگر جهانی (GSN):

GSN [24] ، [7] یک سرویس میانی مبتنی بر IoT است (شکل 2 را ببینید) که هدف آن ارائه یک بستر یکنواخت برای ادغام انعطاف پذیر ، اشتراک گذاری و استقرار دستگاه های ناهمگن IoT است.

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

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

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

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

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

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

برنامه بسته بندی i) مشخص می کند که کدام پروتکل شبکه برای اتصال ، تعامل و برقراری ارتباط با حسگر فیزیکی هنگام اولین بار ، ii) برای خواندن داده ها از سنسور چه کاری باید انجام شود ، و III) چه کاری با داده ها انجام شود هنگامی که از سنسور دریافت می شود.

GSN یک پایگاه داده مبتنی بر SQL فراهم می کند که تمام داده های حسگر خام را در صورت ذخیره ویژگی دائمی سنسور مجازی در مشخصات XML صحیح ذخیره می کند.

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

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

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

در پاراگراف زیر ، ما ایجاد سنسورهای Phidgets در GSN را نشان می دهیم تا توانایی ارائه شده توسط انتزاع دستگاه آن را نشان دهیم.

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

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

اضافه کردن یک سنسور Phidgets (دستگاه IoT) به عنوان یک سنسور مجازی جدید در GSN نیاز به ایجاد پرونده استقرار همانطور که در شکل 6 نشان داده شده است و ایجاد یک کلاس بسته بندی که می تواند به عنوان نخ برای مصرف داده های جریان با توجه به ویژگی های مشخص شده در پرونده استقرار XML

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

برچسب کلاس پردازش کلاس جاوا این سنسور مجازی را مشخص می کند ، در این حالت PhidgetVirtualSensor.

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

در این حالت ، این صدا و نور است و هر دو از نوع دوتایی هستند.

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

به عنوان مثال ، میزان نمونه برداری ، منطق پردازش روی داده های جمع آوری شده از طریق ویژگی نمونه گیری نرخ و برچسب پرس و جو مشخص می شود.

شکل 7 اجرای جزئی از کلاس بسته بندی است که کلاس AbstractWrapper تهیه شده توسط GSN را گسترش می دهد و از این توصیف کننده XML ورودی می کند.

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

همچنین از ترکیب دستگاههای چند فروشنده از طریق توصیف XML پشتیبانی نمی کند.

با این حال ، گسترش GSN [26] ، که بخشی از پروژه OpenIoT است ، توانایی ترکیب محدودی را ارائه می دهد.

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

برنامه های خارجی می توانند از طریق API های سرویس RESTful یا وب به سنسورهای مجازی که در GSN میزبان هستند دسترسی پیدا کنند.

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

داده های کاربر توسط یک حساب کاربری محافظت می شوند.

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

GSN برای جاسازی در برق و محاسبات محدود شده دروازه های IoT مانند تلفن های هوشمند یا RaspBerry Pi طراحی نشده است ، بنابراین هیچ پردازش محلی یا جمع آوری داده ها انجام نمی شود.

مشخصات اعلاني قابليت هاي حسگر از طريق پرونده توصيفگر XML يك گام در جهت درست براي ايجاد سريع برنامه BAC مانند با توليد اتوماتيك كلاس بسته بندي از پرونده توصيف كننده است.

ICT Middleware مبتنی بر B.Cloud:

1) Google Fit: Google Fit [9] یک اکوسیستم IoT باز است.

این یک واسطه مبتنی بر ابر IoT است که به کاربران اجازه می دهد داده های تناسب اندام خود را کنترل کرده و از یک مکان مرکزی برنامه های تناسب اندام خود را بسازند.

این هدفی مشابه با سیب HealthKit دارد.

این سیستم شامل یک فروشگاه تناسب اندام ، که یک سرویس ذخیره سازی ابری است (مشابه Firebase ، یک سرور اسناد مستقر در JSON) است که داده ها را از انواع دستگاه ها و برنامه ها ذخیره می کند.

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

به عنوان مثال ، API ها را برای عضویت در یک نوع داده خاص تناسب اندام یا یک منبع تناسب اندام خاص (به عنوان مثال ، Fitbit یا Smartwatch) ، API برای جستجوی داده های تاریخی یا ضبط مداوم داده های سنسور از یک منبع خاص (به عنوان مثال ، ساعت هوشمند) فراهم می کند. .

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

Google Fit یک واسط IoT است که به منظور سهولت در ساخت یک نوع از پیش تعیین شده از برنامه ، در این حالت ، داده های خود ردیابی از دستگاه های تناسب اندام پوشیدنی طراحی شده است.

Google Fit برای دستگاههای IoT که با BLE (بلوتوث کم انرژی) ارتباط برقرار می کنند ، پشتیبانی بومی را ارائه می دهد.

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

در شکل 8 ، ما یک نمونه از یک حسگر نرم افزاری Google Fit را برای یک سنسور Phidgets ارائه می دهیم تا پیچیدگی ایجاد یک برنامه BAC مانند برای دستگاه های IoT را که هنوز توسط Google Fit پشتیبانی نمی شوند نشان دهد.

برای جمع آوری و ذخیره داده های حسگر از یک سنسور Phidgets که از طریق شبکه WiFi در حال برقراری ارتباط است ، نیاز به اجرای یک سرویس سنجش به عنوان یک برنامه Android برای ارتباط با سرور ذخیره سازی cloud Google Fits است.

شکل 8 اجرای PhidgetsSensorService را نشان می دهد که FitnessSensorService را گسترش می دهد.

برنامه نویسی برای آن سرویس شامل درک برنامه نویسی رویداد Javas و همچنین تسلط بر روش های مختلف پاسخ به تماس در کلاس FitnessSensorService است که بی اهمیت نیست.

با این حال ، برای دستگاه های IoT (به عنوان مثال ، Fitbit و Garmin) که قبلاً توسط Google Fit پشتیبانی می شوند ، فقط موضوع بارگیری و نصب برنامه Google Fit در دروازه های سازگار با اندروید مانند تلفن های هوشمند یا رایانه لوحی ، ایجاد یک حساب کاربری ، تنظیم شخصی است. جزئیات و اجازه.

توجه داشته باشید که با انتخاب استفاده از Google Fit ، کاربر گره خورده است تا داده حسگر خود را در فضای ذخیره ابری Google Fits ، با فرمت ارائه شده توسط Google Fit و در حد اندازه دیکشنری شده توسط Google Fit ذخیره کند.

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

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

کشف سرویس محدود به اسکن دستگاههای BLE در این نزدیکی است.

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

علاوه بر این ، کاربران باید Google Fit را به مدیریت داده های خصوصی خود واگذار کنند.

2) Xively:

Xively [27] ، همراه با LogMeIn ، یک بستر بین المللی IoT مبتنی بر ابر است به عنوان یک سرویس (PaaS).

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

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

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

کاربرد اصلی Xively برای اتصال دستگاههای IoT به انتخاب کاربران است و داده های جمع آوری شده را بر روی ابر خود به روش مقیاس پذیر ذخیره می کند.

Xively سرویس پایداری را شامل می شود که شامل بانک اطلاعاتی سری زمانی برای ذخیره سریع داده ها و بازیابی است.

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

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

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

حتی اگر با اضافه کردن سنسورها یا دستگاه های IoT در Xively ساده تبلیغ شود ، API های ارائه شده به مهارت برنامه نویسی غیر اصولی به ویژه برای دستگاه های IoT که از قبل پشتیبانی نمی شوند نیاز دارند.

نوشتن برنامه IoT در Xively غیرممکن است که داده های مربوط به چندین منبع IoT را با هم مرتبط می کند.

به عنوان مثال ، هیچ موتور کامپوزیتی به گونه ای ارائه نشده است که امکان ارتباط داده ها از یک سنسور میزبان در GSN با یک سنسور میزبانی شده در Google Fit و بدون برنامه نویسی گسترده وجود داشته باشد.

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

این سیستم برای کاربران تجاری هدفمند شده است.

به عنوان یک معماری مبتنی بر ابر ، Xively دارای همان مسائل امنیتی ، حفظ حریم خصوصی و تأخیر است که توسط Google Fit تجربه شده است.

3) Paraimpu:

Paraimpu یک واسطه آگاه اجتماعی IoT است [28] ، [29] که به مصرف کنندگان این امکان را می دهد تا سرویس های IoT RESTful خود را اعم از فیزیکی یا مجازی اضافه کنند ، استفاده کنند ، به اشتراک بگذارند و بهم متصل کنند.

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

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

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

این به کاربران امکان می دهد برنامه های IoT ساده را از طریق Javascript تنظیم کنند.

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

Paraimpu با استفاده از یک معماری مقیاس پذیر اعمال می شود که باعث قطع Tornado Web بدون انسداد [30] ، یک موانع بار NGINX [31] ، و یک MongoDB [32] می شود که پایداری ، تکثیر و پشتیبانی از مدیریت داده های ناموفق را فراهم می کند.

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

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

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

یک موتور قاعده بر پایه JavaScript برای مشخص کردن منطق ترکیب بین یک سنسور و یک محرک ارائه شده است.

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

Paraimpu از کشف خدمات پشتیبانی نمی کند.

امنیت از طریق پشتیبانی از پروتکل https و تأیید اعتبار از طریق یک نشانه دسترسی انجام می شود.

با محرمانه بودن اطلاعاتی که می خواهند داده های خود را به اشتراک بگذارند (خصوصی در مقابل عمومی) ، حریم خصوصی کنترل می شود.

مانند Google Fit و Xively ، کاربران هیچ کنترلی بر مالکیت کل داده های خود ندارند.

Paraimpu وسیله ارتباطی دستگاه را به دستگاه ارائه نمی دهد و از این رو مسئله تأخیر معمول معماری مبتنی بر ابر را شامل می شود.

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

C.Aktor IoT Middleware:

1) کالوین: کالوین [33] یک برنامه واسط منبع آزاد IoT از اریکسون است که هدف آن ارائه یک مدل برنامه نویسی یکپارچه است که دارای وزن سبک و قابل حمل برای قابلیت و وسایل انرژی محدود شده توسط IoT است.

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

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

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

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

این الگوی مدل بازیگر از الگوی تماسهای اتمی ناهمزمان (AAC) پیروی می کند که در آن اقدامات اتمی کوتاه با دعوت اتمی دستگیره های پاسخ برای انجام تعامل در زمان واقعی انجام می شود.

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

کالوین برای سهولت در برنامه نویسی یک بازیگر ، نسخه نویسی متن خود را ارائه می دهد.

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

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

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

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

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

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

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

کالوین هنوز از ترکیب مبتنی بر GUI برنامه های IoT پشتیبانی نمی کند.

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

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

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

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

2) گره-RED:

Node-RED [34] یک سیستم عامل منبع باز IoT از IBM است.

این مبتنی بر node.js ، یک پلتفرم Javascript در سمت سرور است که از یک ماژول I / O بدون انسداد در یک محیط محاسبات توزیع شده استفاده می کند.

شبیه به کالوین ، این یک واسط IoT است که به دلیل ردپای سبک آن ، در لبه شبکه قابل اجرا است.

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

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

مزیت کلیدی Node-REDs ابزاری بصری است که کار ترکیب دستگاه های IoT را ساده می کند ، به خصوص اگر گره دستگاه IoT قبلاً توسط دیگران تهیه و منتشر شده باشد.

ابزار تصویری موجود در Node-RED به کاربران امکان می دهد بلوک های کشیدن و رها کردن اجزای یک سیستم بزرگتر را نمایان کرده و آنها را بسازند تا یک برنامه IoT بسازند.

بنابراین گره-RED از ترکیب برنامه های IoT پشتیبانی می کند.

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

برای کار با دستگاه یا سرویس با Node-RED ، API های ارتباط با دستگاه باید به صورت کتابخانه node.js یا یک ماژول قابل دسترسی توسط Node- RED در دسترس باشند.

یک شکل محدود از امنیت از طریق تأیید اعتبار رمز عبور ارائه می شود.

تیم Node-RED تصور می کند که کتابخانه های ماژول یا node.js برای دستگاه های IoT ناهمگن می توانند با ایجاد یک شبکه اجتماعی از توسعه دهندگان Node-RED جمع شوند.

Node-RED کشف خدمات ارائه نمی دهد.

این در node.js ساخته شده است ، که یک بستر جدید با کتابخانه ها یا ماژول های محدود است.

Node-RED برای نمونه سازی سریع برنامه های IoT که قابلیت های آن را می توان در Javascript ساده رمزگذاری کرد و با استفاده از Node-REDs در مدل محاسبات رویداد محور برای ساخت تعامل در زمان واقعی با دستگاه های فیزیکی ، مناسب است.

3) میزبان دسترسی بطلمیوس:

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

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

سیستم گردش کار علمی معروف Kepler [36] در بالای سیستم بطلمیوس ساخته شده است.

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

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

مدیر همان نقش موتور ارکستراسیون را در یک گردش کار ایفا می کند.

Ptolemy Accessor Host چارچوب بازیگر گرا را با انتزاع دسترسی ها گسترش می دهد.

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

هر دسترسی دارای رابط و پیاده سازی است.

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

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

Accessor از مدل انضباط محاسبه در بطلمیوس استفاده می کند و ناهمگونی را در دستگاه های IoT به جای ارائه یک استاندارد واحد برای همگن کردن آنها در بر می گیرد.

Ptolemy Accessor Host همچنین برای سهولت در تنظیم برنامه های IoT یک رابط کاربری گرافیکی (GUI) فراهم می کند.

GUI شامل ویژگی های کشیدن و رها کردن (راهی آسان برای اتصال بازیگران و دسترسی ها به یکدیگر) و همچنین یک چارچوب جامع برای مدیریت برنامه های IoT مرکب است.

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

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

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

دسترسی کنندگان را می توان بارگیری و به اشتراک گذاری در وب مانند Parimpu.

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

توجه داشته باشید که ماژول ارتباطی برای سخت افزار سنسورهای Phidgets باید در میزبان Accessor Ptolemy موجود باشد.

ماژول ارتباطی را می توان به هر زبان برنامه نویسی پیاده سازی کرد ، با این حال ، برای اینکه ماژول در سایر میزبان لوازم جانبی فراتر از بطلمیوس (میزبان که موتور جاوا اسکریپت دارد) قابل اجرا باشد ، ماژول باید مطابق با استاندارد CommonJSModule باشد.

شکل 9 یک اجرای جزئی از ماژول phidgetsSensor.js است که API های ارتباطی فیجت را محصور می کند.

شکل 10 اجرای یک لوازم جانبی Phidgets را نشان می دهد که از ویژگی های ارائه شده توسط ماژول برای جمع آوری داده های حسگر صدا و نور استفاده می کند.

وقتی با کدهای بسته بندی شده برای Phidgets در GSN یا کدهای سنسور فیجت در Google Fit مقایسه می شوید ، اسکریپت دسترسی Ptolemys و ماژول آن ساده تر است زیرا نیازی به دانش در مورد موضوعات یا برنامه نویسی همزمان ندارند.

اسکریپت Accessor به گونه ای طراحی شده است که به راحتی با توضیحی که به طور خودکار برای مصرف سایر برنامه ها تولید می شود ، نوشته می شود.

یکی از مدلهای محاسباتی داخلی Ptolemy ، یعنی

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

مزیت اصلی Ptolemy Accessor Host امکان ترکیب کردن دستگاه های IoT چند فروشنده است که بر اساس مدل های محاسبات چندگانه محکم با معانی زمانی است.

به عنوان مثال ، اجرای صحیح یک برنامه IoT توزیع شده در زمان واقعی را تضمین می کند.

سایر سیستم عامل های بازیگر گرا (Node-RED و Calvin) فقط از یک مدل واحد محاسبه پشتیبانی می کنند که معمولاً بر اساس جریان داده ها / رویدادها بدون معانی زمانی دقیق استوار است.

علاوه بر این ، در Ptolemy Accessor Host ، توسعه دهندگان می توانند برای تهیه برنامه های IoT از کتابخانه های بازیگر گسترده موجود (بازیگران محاسبه ، ذخیره سازی یا تجسم) استفاده کنند.

Ptolemy Accessor Host برای هر دو برنامه IoT واکنش پذیر پویا (مثلاً) مناسب است

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

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

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

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

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

D. Summary of IoT Middleware Systems:

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

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

عنوان ستون افقی در جدول I ویژگی های کلیدی واسطه IoT را نشان می دهد که باعث می شود مصرف کنندگان بتوانند برنامه های IoT مشابه BAC ایجاد کنند.

هر سطر از جدول ویژگی های ارائه شده توسط سیستم میان افزار IoT را که برای تهیه برنامه های IoT شبیه به BAC مورد بررسی قرار داده ایم ، ذکر می کند.

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

ستون اتصال به شبکه به انواع پروتکل های ارتباطی پشتیبانی شده (به عنوان مثال HTTP ، UDP ، BLE) اشاره دارد.

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

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

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

ستون امنیت و حفظ حریم خصوصی به نحوه ذخیره و مدیریت داده های شخصی اشاره دارد.

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

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

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

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

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

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

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

ما در شکل 8 نشان داده ایم که اضافه کردن یک سنسور Phidgets با طبقه بندی کلاس FitnessSensorService در Google Fit امری بی اهمیت است.

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

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

همه سیستم ها خدمات پایداری ارائه می دهند ، تفاوت در انواع داده هایی که می توانند ذخیره شوند و مقیاس پذیری سرویس است.

Google Fit در حال حاضر فقط از داده های مربوط به تناسب اندام پشتیبانی می کند.

داده های چندرسانه ای پشتیبانی نمی شوند.

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

Xively و Google Fit جزئیات فنی سرویس پایداری خود را مرور نمی کنند و بنابراین ما آنها را در فضای ذخیره سازی ابر در جدول لیست می کنیم.

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

برای واسطه های مبتنی بر بازیگر مانند Ptolemy Accessor Host ، سرویس مداوم به صورت پیش فرض سیستم فایل محلی است که ممکن است مقیاس پذیر نباشد.

ترکیب و کشف خدمات حداقل در بین سیستم های مورد بررسی پشتیبانی می شود.

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

فقط میزبان Access Ptolemy Access در حال حاضر یک موتور ترکیبی جامع ارائه می دهد.

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

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

در میان سیستم ها ، Ptolemy Accessor Host پیشرفته ترین موتور پردازش جریان را از طریق کارمندان مختلف ارائه می دهد.

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

V. چالش ها و مسائل V.KEY:

در حالی که واسطه IoT وعده هایی را برای توسعه برنامه ها و سرویس های نوآورانه IoT در اختیار ما قرار می دهد که ممکن است در حال حاضر حتی نتوانیم تصور آنها را انجام دهیم ، بلکه تعدادی از چالش های هولناک را نیز ایجاد می کند [1] ، [5] ، [37].

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

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

در میان میان افزارهای IoT که مورد مطالعه قرار گرفتیم ، فقط Calvin ، Node-RED و Ptolemy Accessor Host طراحی شده اند تا قابل حمل و سبک باشند.

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

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

در میان افزار IoT مبتنی بر ابر ، هیچ موتور ترکیبی برای مصرف کنندگان ارائه نشده است.

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

برای معماری مبتنی بر سرویس ، یک ابزار SDK برای تهیه یک برنامه IoT ارائه شده است.

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

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

ابزارهای تصویری تهیه شده توسط Node-RED و Ptolemy Accessor Host ابزارهای ترکیب اولیه در این جهت تحقیق هستند.

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

این امر به کاربران نهایی نیاز دارد تا به JavaScript یا سایر زبانهای اسکریپت نویسی تسلط یابند تا در صورتی که دسترسی های مورد نظر قبلاً ارائه نشده باشد ، یک برنامه IoT ایجاد کنند.

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

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

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

به عنوان مثال ، با جمع آوری برخی از اطلاعات متنی از مصرف کنندگان (مکان ، زمان ، URL ، پروتکل ارتباطی) ، دسترسی مورد نظر را می توان به صورت خودکار به عنوان زیرمجموعه از یک Accessor موجود برای برنامه IoT مورد نظر پیکربندی کرد.

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

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

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

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

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

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

به عنوان مثال ، در برخی از برنامه های مهم برای نظارت بر سلامت IoT ، خدمات IoT شکست خورده باید بدون ایجاد هیچ گونه اختلال جایگزین شوند.

چهارمین چالش تضمین امنیت برنامه های IoT و همچنین حفظ حریم خصوصی کاربران است.

بسیاری از برنامه های کاربردی از حوزه های مختلف اعم از مراقبت های بهداشتی هوشمند [38] تا کشاورزی دیجیتال [39] از زیرساخت IoT استفاده می کنند.

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

این مسئله باعث ایجاد امنیت ، حفظ حریم خصوصی و قابلیت اطمینان داده های IoT شده است [40].

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

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

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

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

کشف سرویس A.IoT:

ما ابتدا مکانیسم های کشف خدمات موجود را مرور می کنیم و سپس چند استراتژی برای ارائه خدمات در واسطه IoT را تشریح می کنیم.

1) رویکردهای کشف سرویس موجود در IoT:

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

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

در پروژه OpenIoT [18] ، گروه W3C Incubator Activity XG یک هستی شناسی SSN (شبکه حسگر معنایی) را برای کشف سنسور و ادغام پویا سنسورها پیشنهاد داده است.

هستی شناسی SSN هر دو ویژگی یا ویژگی های سنسورها و مشاهدات حاصل از سنسورها را ضبط می کند.

مفاهیم کلیدی در SSN عبارتند از سنسور ، مشاهده ، خاصیت ، FeatureOfInterest ، SensorOutput ، اندازه گیری قابلیت قابلیت ، مشاهده و ارزیابی و وضعیت.

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

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

در XGSN [26] ، پروژه گسترش GSN ، هر دو دستگاه IoT و داده های مشاهده شده با استفاده از SSN از نظر معنایی حاشیه نویسی می شوند.

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

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

داده های حاشیه نویسی به جریان های RDF تبدیل می شوند و به یک سنسور Linked Sensor Middleware (LSM) [41] که یک فروشگاه RDF Linked Data است ارسال می شود.

LSM می تواند داده های جریان RDF را در یک فروشگاه سه گانه ذخیره کند یا پرس و جو مداوم را از داده های جریان با استفاده از نمایش داده های SPARQL انجام دهد تا مشاهدات جمع شده را در زمان واقعی به دست آورد.

با استفاده از این تنظیم ، هر سنسور مجازی GSN یک نمونه حسگر مربوطه در فروشگاه LSMs RDF دارد.

XGSN یک سرویس RESTful برای ثبت سنسورهای مجازی حاشیه نویسی ارائه می دهد.

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

SensorML [42] یک استاندارد تایید شده کنسرسیوم Open Geospatial (OGC) است.

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

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

SensorML بخشی از مجموعه استانداردهای OGC Sensor Web Enablement (SWE) است.

پروژه Hydra [23] OWL و SAWSDL را تصویب می کند تا از نظر معنایی دستگاه های IoT خود را برای کشف حاشیه نویسی کنند.

OWL یک زبان هستی شناسی برای وب معنایی است.

هستی شناسی OWL معمولاً به صورت اسناد RDF ذخیره می شود.

حاشیه نویسی معنایی برای زبان توصیف سرویس وب (SAWSDL) اجازه می دهد تا پرونده WSDL (زبان توصیف سرویس وب) با توضیحات معنایی غنی شود.

این فرض می کند که دستگاه های IoT می توانند بطور خودکار در معرض فایلهای WSDL قرار بگیرند.

سایر تلاشهای قابل توجه در زمینه کشف خدمات IoT شامل Snoogle [43] ، Microsearch [44] و MAX [45].

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

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

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

در [46] ، Ostermaier و همکاران.

سیستمی را به نام Dyser گزارش داده است تا در زمان واقعی اشیاء در وب کشف شود.

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

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

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

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

در حالیکه استانداردهای در حال ظهور مانند SSN و Linked Data در حال به دست آوردن هستند ، استانداردهای رقابتی مانند SensorML و SAWSDL را نمی توان نادیده گرفت.

اگرچه ابزار هستی شناسی متن باز مانند Protege1 وجود دارد که می تواند برای ارائه حاشیه نویسی معنایی دستگاه های IoT مورد استفاده قرار گیرد ، اما هنوز حاشیه نویسی دستگاه های IoT با چنین توصیفاتی بدون دانش تخصصی از چارچوب توصیف منابع (RDF) نیست.

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

در پروژه OpenIoT [47] ، یک ابزار حاشیه نویسی معنایی بصری با XGSN برای مخفی کردن جزئیات ایجاد فایل RDF از کاربران یکپارچه شده است.

این ابزار حاشیه نویسی برای واسط XGSN 1protege.stanford.edu ویژه است.

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

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

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

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

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

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

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

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

این روش با موفقیت برای ایجاد موتور جستجوی سرویس وب مبتنی بر شباهت مانند Woogle [48] ، WSExpress [49] و سیستم های Titan [50] استفاده شده است.

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

ما یک موتور جستجوی شباهت سرویس وب به نام ServiceXplorer ایجاد کرده ایم [51].

کاربر می تواند یک فایل توصیف سرویس وب موجود (WSDL) را بارگذاری کند ، سیستم توضیحات را تجزیه کرده و سوابق عملکردهای کلیدی سرویس های وب را که می توان با استفاده از الگوریتم جستجوی شباهت مبتنی بر حرکت زمین از راه دور (EMD) جستجو کرد ، ایجاد می کند.

این رویکرد فرض می کند که رابط کاربری یک دستگاه IoT به صورت یک سند موجود است و در ساختار سند نیز نظم خاصی وجود دارد.

به عنوان مثال ، اسناد ایجاد شده توسط JSDoc برای دسترسی در Ptolemy دارای یک ساختار منظم است که ویژگی های دستگاه فیزیکی محصور شده را برجسته می کند.

نمونه ای از اسناد مربوط به لوازم جانبی لامپ لامپ Philips Hue در بطلمیوس را می توان به صورت آنلاین 2 یافت.

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

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

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

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

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

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

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

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

توصیف موارد مرتبط با کشف روابط ضمنی بین اشیاء از طریق سیاهههای مربوط به استفاده ، در یک کار تحقیقاتی اخیر توضیح داده شده است [52] ، [53].

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

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

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

B. امنیت و حریم خصوصی:

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

در این بخش ابتدا امنیت ، حفظ حریم خصوصی و اعتماد را در زمینه محیط IoT تعریف می کنیم.

سپس سازوکارهای موجود در زمینه حمایت از امنیت ، حفظ حریم خصوصی و اعتماد را با تمرکز ویژه روی واسطه موجود IoT مرور می کنیم و در آخر در مورد برخی مشکلات باز و راه حلهای پیشنهادی بحث خواهیم کرد.

1) ویژگی های امنیتی ، حریم خصوصی و اعتماد:

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

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

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

برای هدف از این بحث ، ما برخی از ویژگی های کلیدی مورد بحث در ادبیات در شکل 11 را ضبط می کنیم.

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

امنیت اغلب با استفاده از سه ویژگی تعریف می شود: محرمانه بودن ، صداقت و در دسترس بودن [54].

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

ویژگی یکپارچگی تضمین می کند که داده های تولید شده و مصرف شده در سیستم IoT به طرز مخرب تغییر نمی کنند.

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

علاوه بر این سه ویژگی اصلی ، خصوصیات امنیتی بیشتری در ادبیات تعریف شده است ، مانند پنهان کاری رو به جلو و رو به عقب [55] ، که در یک زمینه خاص در سیستم های IoT به همان اندازه مهم هستند.

رفتار با حریم خصوصی در ادبیات متنوع است ، از این که از آن به عنوان یکی از ویژگیهای امنیتی تعریف شود [55] تا مراجعه به فناوریهای خاص تقویت حریم خصوصی ، تعریف شده است [56].

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

اشخاص موجود در اینجا می توانند کاربران نهایی سیستم IoT یا دستگاه های IoT باشند [57].

ما نیازهای حریم خصوصی را از طریق سه تکنیک مهم محبوب و نوظهور ضبط می کنیم: ناشناس بودن ، حریم خصوصی دیفرانسیل و طراحی حریم خصوصی.

برای اطلاعات بیشتر خوانندگان را به [58] ، [59] ، [60] ارجاع می دهیم.

اعتماد اغلب از طریق سه ویژگی تعریف می شود: تأیید اعتبار ، مجوز و پاسخگویی.

ویژگی احراز هویت تضمین می کند که داده ها توسط فرستنده ادعا شده ارسال می شوند [61] ، در حالی که دارایی مجوز تضمین می کند که فقط اشخاص مجاز قادر به انجام برخی عملیات هستند [62].

مسئولیت پذیری به اموالی اطلاق می شود که ممیزی سیستم های IoT را برای رویدادهای مهم امکان پذیر می کند و تجزیه و تحلیل ورود به سیستم را برای پیوند رفتارهای موجودات با چنین وقایعی انجام می دهد [63].

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

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

ما برای جزئیات بیشتر خوانندگان را به [55] ارجاع می دهیم.

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

2) رویکردهای موجود برای حمایت از امنیت ، حفظ حریم خصوصی و اعتماد:

مشکل امنیت و حفظ حریم خصوصی در سیستم های IoT اخیراً مورد توجه بیشتر محققان قرار گرفته است ، در نتیجه تعدادی از نشریات در این زمینه [64] ، [65] ، [66] منتشر شده است.

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

Bandyopadhyay و همکاران.

[67] ده واسط محبوب IoT از جمله Hydra [68] ، GSN [69] ، SOCRADES [70] و SMEPP [71] را بررسی کرده اند و گزارش داده اند که تنها شش مورد از ویژگی های امنیتی و حریم خصوصی را پشتیبانی می کنند.

Fremantle و Scott [72] اولین کسی هستند که بیست و دو سیستم میانجی IoT را با محوریت امنیت و حفظ حریم خصوصی مورد بررسی قرار دادند.

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

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

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

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

در ادامه ، ما حمایت از امنیت ، حریم خصوصی و اعتماد به معماری میان افزار را که قبلاً مورد بحث قرار گرفت ، مرور می کنیم.

سرویس مبتنی بر IoT Middleware: Hydra [68] (همچنین به عنوان LinkSmart [73] نیز شناخته می شود) یک سرویس مبتنی بر سرویس IoT است که با استفاده از خدمات وب پیاده سازی شده و از مدل امنیتی XML استفاده می کند [74].

یکی از اشکالات مدل امنیتی استاندارد XML این است که به دلیل کانونیالیزاسیون XML مورد نیاز برای امضای دیجیتال ، هم در زمان و هم در حافظه پرهزینه است.

رمزگذاری داده ها در Hydra / LinkSmart با استفاده از کلیدهای متقارن پشتیبانی می شود ، زیرا آنها نسبت به زیرساخت های کلید عمومی (PKI) کارآمد تر هستند.

با این حال ، آن را از یک چالش منحصر به فرد در مدیریت کلید رنج می برد ، یعنی

در ایجاد و توزیع کلیدها

برای رفع این مشکل ، سیستم Hydra / LinkSmart خدماتی به نام TrustManager را برای پشتیبانی از PKI با یک مرکز صدور گواهینامه مرکزی (CA) ارائه می دهد.

CA CA برای هر وسیله شناسایی در Hydra / LinkSmart گواهی امضا کرده است که برای شناسایی طرفین ارتباط دهنده در سیستم استفاده می شود.

واسط Hydra پشتیبانی محدودی از ویژگی های امنیتی ، حریم خصوصی و اعتماد را که قبلاً توضیح داده شده است ، ارائه می دهد.

این هیچ کنترل دسترسی مبتنی بر خط مشی را برای داده های IoT ارائه نمی دهد ، و به ذخیره سازی ایمن داده ها برای کاربران نمی پردازد.

همچنین ارائه مدلهای کنترل دسترسی با کنترل کاربر به داده های کاربران امکان پذیر نیست [72].

از این رو ، امنیت اساسی ، حریم خصوصی و پشتیبانی اعتماد در هیدرا به پشتیبانی رمزنگاری از طریق TrustManager محدود شده است.

GSN [69] ، یکی دیگر از سرویس های میانی مبتنی بر سرویس ، صریحا شامل یک مدل امنیتی از طریق سرویس یکپارچگی و کنترل دسترسی آن است.

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

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

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

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

اگرچه این معماری با توجه به امنیت طراحی شده است ، اما دسترسی به جزئیات مربوط به مدلهای زیربنایی دشوار از طریق دو مقاله کلیدی در GSN [69] ، [75] و XGSN [76].

از این رو نتیجه می گیریم که پشتیبانی از امنیت ، حفظ حریم خصوصی و اعتماد در GSN و همچنین نسخه گسترده آن ، XGSN محدود است.

میان افزار OpenIoT همچنین یک واسطه سرویس مبتنی بر سرویس است زیرا با هسته GSN ساخته شده است.

چهارچوب امنیت و حفظ حریم خصوصی OpenIoT تعدادی از ویژگی های اساسی را توصیف می کند که یک واسطه بین المللی IoT برای ارائه پشتیبانی در امنیت ، حفظ حریم خصوصی و اعتماد مورد نیاز است [77].

به عنوان مثال ، پشتیبانی از یکپارچگی داده ها از طریق هضم پیام ، محرمانه بودن از طریق رمزنگاری کلید خصوصی ، تبادل کلید از طریق رمزنگاری کلید عمومی ، احراز هویت از طریق امضای دیجیتال ، مدیریت هویت از طریق گواهینامه های دیجیتال ، و مدیریت کلید از طریق keytool و keystore.

بعلاوه ، تعدادی از پروتکل های امنیتی را که برای IoT مانند IEEE802.15.4 ، IPSec ، TSL و HTTPS ضروری است ، تشریح کرده است.

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

با این حال ، جزئیات اجرای این مکانیزم های امنیتی در پلت فرم OpenIoT در دسترس نیست.

دو مورد خاص با چهارچوب امنیت و حفظ حریم خصوصی OpenIoT وجود دارد: (الف) بیشتر تکنیک های اساسی در مدل توضیح داده شده عمومی و خاص برای محیط IoT با محدودیت منابع نیستند ، و (ب) هیچ گونه اجرای عمومی از چارچوب امنیتی در دسترس نیست. .

در Virtus [78] ، یک سیستم میانی مبتنی بر سرویس ، امنیت با طراحی با سیستم یکپارچه شده است.

Virtus از پروتکل XMPP برای برقراری ارتباطات محور از رویدادهای ایمن استفاده می کند.

احراز هویت توسط پروتکل TLS (Transport Layer Security) و رمزگذاری توسط پروتکل SASL (احراز هویت ساده و لایه امنیتی) پشتیبانی می شود.

TLS همچنین محرمانه بودن و یکپارچگی داده ها را تضمین می کند ، در حالی که SASL اعتبارسنجی سرور را از طریق پروفایل خاص XMPP با استفاده از تأیید اعتبار تضمین می کند.

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

IoT Middleware مبتنی بر ابر: جزئیات مربوط به پشتیبانی از امنیت ، حفظ حریم خصوصی و اعتماد به سیستم های مبتنی بر ابر مانند Google Fit ، Paraimpu و Xively در دسترس نیست تا یک ارزیابی عادلانه ارائه دهد.

از آنجا که این سیستم ها به معماری مبتنی بر ابر متکی هستند ، تعدادی از مسائل امنیتی و حریم خصوصی مربوط به سیستم های ابری برای آنها قابل استفاده است [79].

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

علاوه بر این ، پشتیبانی امنیتی محدود ارائه شده توسط این سیستم ها برای محیط IoT با محدودیت منابع طراحی نشده است.

در Webinos [80] ، یکی دیگر از میان افزارهای مبتنی بر ابر IoT که تحت پروژه FP7 اروپا ساخته شده است ، امنیت و حریم خصوصی به عنوان شهروند درجه یک رفتار می شود و در هنگام طراحی سیستم به جای یک راه حل پس از فکر مانند OpenIoT ، شامل می شود.

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

هر کاربر در سیستم دارای یک نمونه مطمئن منطقه شخصی (PZH) است که در ابر اجرا می شود.

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

این خط مشی ها با استفاده از XACML [81] ، یک زبان کنترل دستیابی به اهداف کلی تعریف شده است.

حریم خصوصی در Webinos با افشای حداقل مقدار داده از طریق غیرفعال کردن مجموعه داده های متنی و فیلتر خودکار داده های مربوط به اطلاعات شخصی اعمال می شود.

IoT Middleware مبتنی بر بازیگر: پشتیبانی امنیتی برای واسطه پرداز IoT بازیگر مستقر ، به عنوان مثال ، میزبان دسترسی بطلمیوس [82] ، هنوز در مراحل اولیه توسعه است.

Terraswam اهمیت امنیت ، حفظ حریم خصوصی و اعتماد را در لیست سفید خود در سال 2012 مشخص کرده است [83].

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

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

یکی دیگر از بازیگران میانی مبتنی بر Node-RED به طور پیش فرض امن نیست زیرا هر کسی که می تواند به آدرس IP و پورت دسترسی داشته باشد می تواند به ویرایشگر دسترسی پیدا کند و تغییرات را اعمال کند.

IBM با ایجاد بسترهای نرم افزاری Watson IoT در Bluemix ، راه حل ایمن تری را ارائه می دهد که به دستگاه ها امکان اتصال ایمن با استفاده از ترکیبی منحصر به فرد از شناسه مشتری و نشانه احراز هویت از طریق TLS V1.2 را می دهد.

به طور خلاصه ، ما با مشاهدات انجام شده توسط Fremantle و Scott [72] می پذیریم که سیستم عامل های میان افزار موجود را می توان در سه گروه به شرح زیر طبقه بندی کرد: سیستم عامل های Middleware که به امنیت ، حریم خصوصی و اعتماد مانند Calvin و Node-RED نمی پردازند ، سیستم عامل های Middleware که تا حدی به مسائل امنیتی می پردازند مانند Hydra ، Virtus و Webinos و سیستم عامل های Middleware که مدل های نظری یا کاغذ سفید را ارائه می دهند ، اما هیچگونه اجرای واقعی و رویکردهای بتن مانند OpenIoT و Ptolemy Accessor را نشان نداده اند.

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

به عنوان مثال ، LinkSmart از الگوی امنیت SOAP / خدمات وب استفاده می کند ، VIRTUS از استانداردهای XMPP استفاده می کند و Webinos از کنترل دسترسی مبتنی بر خط مشی (XACML) و نشانه های هویت فدرال (OpenID) استفاده می کند.

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

3) مشکلات باز و راه حل های پیشنهادی:

Fremantle و Scott [72] شکافهای زیر را در سیستم عاملهای میان رده موجود نشان داده اند: (الف) عدم طراحی حریم خصوصی توسط سیستم های میان افزار ، (ب) امنیت مبتنی بر زمینه ، (ج) مدل کنترلی کاربر از دسترسی ، و (د) پشتیبانی از هویت فدرال در سطح دستگاه.

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

در ادامه ، برخی از موضوعات باز و راه حلهای ممکن را مورد بحث قرار می دهیم.

احراز هویت دستگاه سبک وزن: IoT به طور معمول در یک محیط محدود شده از منابع مانند ارتباط پهنای باند بین گره ها ، انرژی کم ، حافظه کوچک و چرخه CPU فعالیت می کند.

این خصوصیات به طور مستقیم بر راه حل های امنیتی ، حفظ حریم خصوصی و اعتماد طراحی شده برای چنین محیطی تأثیر می گذارد.

به عنوان مثال ، استفاده از بسته های کوچک در IEEE 802.15.4 ممکن است منجر به تکه تکه شدن پروتکل امنیتی شود و ممکن است بردارهای حمله جدیدی باز شود.

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

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

NTRU [84] ، ECC [85] و AE [86] نمونه هایی از چنین تکنیک های رمزنگاری هستند.

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

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

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

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

تعدادی از مکانیسم های دفاعی برای چنین حملاتی مانند DTLS [87] ، HIP [88] و انواع آنها ایجاد شده است.

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

هیچ یک از راه حل های میان افزار گزارش شده در ادبیات این مشکل و راه حل های بالقوه را در طراحی آنها در نظر نمی گیرند.

امنیت پایان به پایان: فاصله بین پروتکل های اینترنت (IPV6) و پروتکل های IoT با وزن سبک (6LoWPAN) دستیابی به امنیت پایان به پایان در محیط IoT را دشوار می کند.

اگرچه 6LoWPAN [89] و CoAP [90] با فشرده سازی بسته های IPV6 به سمت کاهش شکاف پیش می روند ، هنوز تفاوت ظریف وجود دارد.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

کار VI. مرتبط:

اینترنت اشیاء (IoT) طی چند سال گذشته به یک منطقه پرتحرک و سریع در حال گسترش است.

تعدادی از نظرسنجی ها در میان افزار IoT انجام شده است.

انواع واسطه های پوشش داده شده در این نظرسنجی ها بسیار متفاوت است و پیشرفت های سریع فناوری و محصولات جدید چالش ها و فرصت های جدیدی را به وجود می آورد.

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

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

Bandyopadhyay و همکاران [13] بلوک های کاربردی کلیدی را برای واسطه سرویس IoT مبتنی بر سرویس ، از جمله عمل جابجایی ، کشف زمینه ، کشف و مدیریت دستگاه ، امنیت و حفظ حریم خصوصی و مدیریت پایداری پیشنهاد دهید.

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

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

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

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

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

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

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

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

Teixeria و همکاران [15] تمرکز خود را بر روی چالش های مرتبط با سرویس میانی IoT سرویس گرا و ارائه راه حل برای کشف خدمات و ترکیب داده ها با استفاده از یک روش احتمالی برای مقابله با مشکلات مقیاس ، در دسترس بودن سرویس ناشناخته و نادرستی داده ها انجام دهید.

این کار بخشی از پروژه بودجه EC توسط CHOReOS (Choreographies مقیاس بزرگ برای اینترنت آینده) است.

سرانجام ، یک نظرسنجی اخیر توسط Razzaque و همکاران [12] ارائه یک مرور کلی از میان افزار IoT ، با تمرکز بر الزامات انواع مختلف میان افزار ، و بررسی برخی از چالش های مربوط به این الزامات.

الزامات به دو دسته کلی تقسیم می شوند: الزامات سرویس میان افزار (کاربردی و غیر کاربردی) و الزامات معماری.

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

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

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

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

VII.CONCLUSION:

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

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

ما چهار چالش اساسی را در ایجاد واسطه IoT بیان کردیم که عبارتند از:

1) یک پلت فرم میان افزار با وزن سبک که می تواند در هنگام استقرار در دستگاه های IoT با فشار برق و همچنین در رایانه های رومیزی و زیرساخت های ابری خدمات مشابهی ارائه دهد.

2) یک موتور کامپوزیت که بصری است و کاربرد خاصی ندارد

3) مکانیسم امنیتی که می تواند در یک محیط محدود شده از منابع کار کند و در عین حال می تواند به ضمانت مشابه امنیت اینترنت و

4) یک کشف / سرویس IoT مبتنی بر معنایی که فراتر از کشف نام دامنه و آدرس های IP است.

ما در مورد دو راه حل غیر هستی شناختی برای پرداختن به چالش های کلیدی در کشف سرویس IoT توضیح می دهیم.

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

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