Middleware for Internet of Things: A Survey | Middleware for Internet of Things: A Survey جدول مقالات آزادابزار تفکیک و ترجمه متون علمیمقالات اینترنت اشیاء
تماس با ما
 
بدان
 
امروز دوشنبه ، ۱۴۰۰/۰۹/۱۵
 
کلیه مقالات

Middleware for Internet of Things: A Survey

Middleware for Internet of Things: A Survey

Middleware for Internet of Things:

يک بررسي.

خلاصه:

اينترنت اشياء (IoT) آينده اي را در نظر مي گيرد که در آن مي توان چيزهاي ديجيتالي و فيزيکي يا اشياء (e-g- ، تلفن هاي هوشمند ، تلويزيون ، اتومبيل) را با استفاده از فن آوري هاي مناسب اطلاعاتي و ارتباطي متصل کرد تا طيف وسيعي از برنامه ها و خدمات را فعال کند.

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

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

اخيراً ، چندين پيشنهاد براي واسط IoT ارائه شده است.

اين پيشنهادها بيشتر مربوط به شبکه هاي حسگر بي سيم (WSN) است ، که يکي از مؤلفه هاي اصلي IoT است ، اما شناسايي RF (RFID) ، ارتباطات دستگاه توماسين (M2M) و کنترل نظارتي و جمع آوري داده ها (SCADA) را در نظر نمي گيريد. چشم انداز IoT.

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

علاوه بر اين ، مباحث پژوهشي ، چالشها و جهات تحقيقاتي آينده برجسته شده است.

مقدمه:

با پيشرفت فن آوري هاي بي شماري از جمله سنسورها ، محرکها ، محاسبات جاسازي شده و محاسبات ابري و ظهور نسل جديدي از دستگاههاي بي سيم ارزانتر ، کوچکتر ، بسياري اشياء يا چيزهاي ديگر در زندگي روزمره ما با مينياتورهاي ضميمه شده و کم ارتباط برقرار مي شوند. دستگاههاي بي سيم پيشرفته يا منفعل (برچسب هاي شناسايي RF منفعل (RFID)).

مجمع جهاني تحقيقات بي سيم پيش بيني کرده است که تا سال 2017 ، 7 تريليون دستگاه بي سيم در خدمت 7 ميليارد نفر خواهند بود [1] (i-e- ، 1000 دستگاه / شخص).

اين تعداد بسيار زياد از موارد يا دستگاههاي متصل ، IoT را تشکيل مي دهند [2] ، [3].

با استفاده از دسترسي آسان و تعامل با طيف گسترده اي از دستگاه هاي فيزيکي يا مواردي از قبيل ، لوازم خانگي ، دوربين هاي مداربسته ، سنسورهاي مانيتورينگ ، محرک ها ، نمايشگرها ، وسايل نقليه ، ماشين آلات و غيره ، IoT باعث توسعه برنامه هاي کاربردي در بسياري از حوزه هاي مختلف مانند اتوماسيون منزل ، اتوماسيون صنعتي ، کمکهاي پزشکي ، مراقبت هاي بهداشتي موبايل ، کمک سالمندان ، مديريت انرژي هوشمند و شبکه هاي هوشمند ، خودرو ، مديريت ترافيک و بسياري ديگر [4].

اين برنامه ها از مقدار بالايي و متنوعي از داده هاي توليد شده توسط اين اشياء براي ارائه خدمات جديد به شهروندان ، شرکت ها و ادارات دولتي استفاده مي کنند [3] ، [5] - [8].

در يک محيط محاسباتي همه جا مانند IoT ، تحميل استانداردها و تطبيق همه افراد غير عملي است.

يک شبکه فوق العاده در مقياس بزرگ و تعداد زيادي از اتفاقاتي که مي تواند به طور خودجوش توسط اين چيزها ايجاد شود ، به همراه دستگاه ها / فناوري ها / برنامه هاي ناهمگن IoT در توسعه برنامه هاي کاربردي چالش هاي جديدي را به وجود مي آورد و چالش هاي موجود را در محاسبات همه جا به طور قابل توجهي ايجاد مي کند. دشوارتر [2] ، [3].

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

تعدادي سيستم عامل براي پشتيباني از توسعه راه حل هاي ميان افزار IoT [9] - [16] ساخته شده است.

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

مکمل براي ميان افزار رويکردهاي زبان برنامه نويسي هستند [17] ، [18].

اين رويکردها برخي از چالش ها (مانند کشف ، قطع شبکه و ارتباطات گروهي) را که توسط IoT ايجاد مي شود ، مقابله مي کند ، اما در حمايت از آنها براي ديگران مانند زمينه آگاهي (e-g- ، کشف خدمات آگاهي از متن) و مقياس پذيري محدود است.

شبکه هاي حسگر بي سيم (WSN) ، ارتباطات RFID ، ماشين توماسين (M2M) و کنترل نظارت و جمع آوري داده ها (SCADA) چهار مؤلفه اساسي (شکل 2) IoT هستند [19] ، [20].

يک ميان افزار کاملاً کاربردي IoT براي پشتيباني از دامنه هاي متنوع پيش بيني شده برنامه نياز به يکپارچه سازي اين فناوري ها دارد [19].

تا به امروز ، اکثر پيشنهادهاي ميان افزار IoT موجود [21] - [29] محور WSN هستند.

بسياري از نظرسنجي ها در مورد واسطه هاي WSN انجام شده است [30] - [36] ، اينها يا جامع نيستند [34] - [36] يا گزارش هاي جديدتري را گزارش نمي دهند [30] - [32].

از اين نظرسنجي ها ، بديهي است که هيچ واسطه موجود موجود نمي تواند همه نيازهاي لازم را براي برنامه هاي WSN يا IoT پشتيباني کند.

به عنوان مثال ، پررا و همكاران [20] مشخص كردند كه بيشتر راه حل هاي واسطه موجود WSN و IoT متمركز از آگاهي از زمينه را پشتيباني نمي كنند.

علاوه بر اين ، برخلاف WSN ، تعداد پيشنهادات ميان افزار براي RFID و همچنين ارتباطات M2M و SCADA محدود است [19] ، [37] - [41].

از طرف ديگر ، در سالهاي اخير ، واسطه هاي خاص IoT [19] ، [25] ، [42] - [46] در حال ظهور هستند که برخي از بررسي ها [19] ، [24] ، [47] است.

Bandyopadhyay و همکاران [24] ، [47] بر برجسته کردن اهميت يک سيستم ميان افزار در IoT متمرکز شده اند ، و اکثر واسطه هاي مخصوص IoT را شامل نمي شوند [19] ، [25]، [44] - [46].

ژو فقط يک نماي مفهومي از يک چارچوب يکپارچه براي واسطه IoT را بر اساس جهت گيري خدمات ارائه داده است [19].

علاوه بر اين ، اين کار شامل واسطه هاي اخير و ويژه IoT نيست [25] ، [46].

با توجه به اهميت IoT در حوزه هاي مختلف ، اين مقاله از ديدگاه کل نگر در مورد وسايل ميان افزار براي IoT استفاده مي کند و:

1) ويژگي هاي اصلي IoT و الزامات ميان افزار IoT را مشخص مي کند (بخش II). 2) بر اساس الزامات مشخص شده ، يک مرور جامع از سيستم هاي ميان افزار موجود را با تمرکز بر تحقيقات فعلي و پيشرفته ارائه مي دهد (بخش سوم). و (3) چالش هاي تحقيقاتي باز را تشريح مي کند ، توصيه مي کند جهت تحقيقات آينده (بخش IV).

II- سابقه و هدف:

A- IoT و خصوصيات آن:

تحقيقات در مورد IoT هنوز در مرحله اوليه خود است و تعريف استاندارد IoT هنوز در دسترس نيست.

IoT را مي توان از سه منظر مشاهده کرد:

1) اينترنت گرا؛ 2) امور گرا (سنسورها يا چيزهاي هوشمند)؛ و 3) معنايي گرا (دانش) [6].

همچنين ، اينترنت اکسپلورر را مي توان به عنوان حمايت کننده از مصرف کنندگان (انساني) يا کاربردهاي صنعتي قلمداد کرد و در واقع مي تواند به عنوان اينترنت انساني اشياء (HIoT) يا اينترنت صنعتي اشياء (IIoT) ناميده شود [19] ، [48] - [50 ]

حتي اگر اين ديدگاه هاي مختلف به دليل ماهيت ميان رشته اي موضوع تکامل يافته اند ، احتمالاً آنها براي دستيابي به اهداف IoT در يک دامنه برنامه تلاقي مي کنند.

اولين تعريف IoT از منظر «چيزهاي گرا» بود ، جايي که برچسب هاي RFID به عنوان چيزهايي در نظر گرفته مي شدند [6].

با توجه به جامعه RFID ، IoT را مي توان چنين تعريف کرد: "شبکه جهاني اشياء بهم پيوسته منحصر به فرد بر اساس پروتکل هاي ارتباطي استاندارد" [51].

شکل 1 تعريف خوشه تحقيقاتي اروپا با تعريف IoT (IERC) را نشان مي دهد ، جايي که "اينترنت اشياء به افراد و چيزها امکان مي دهد در هر زمان ، هر مکان ، با هر چيز و هر کس ديگري به يکديگر متصل شوند ، به طور ايده آل با استفاده از هر مسير / شبکه و هرگونه خدمات" [52 ] ، [53]

اتحاديه بين المللي ارتباطات از راه دور (ITU) IoT را به طور مشابه مشاهده مي کند:

از هر زمان و هر مکاني که به هر کسي وصل شود ، اکنون به هر چيزي امکان اتصال خواهيم داشت [54].

از نظر معنايي ، IoT به معناي "شبکه اي در سراسر جهان از اشياء بهم پيوسته منحصر به فرد قابل تنظيم ، بر اساس پروتکل هاي استاندارد ارتباطي" [51] است.

بيشتر تعاريف مربوط به IoT صريحاً نماي صنعتي IoT (IIoT) را برجسته نمي کند.

شرکت هاي پيشرو در جهان براي راه حل هاي صنعتي خود (IIoT) توجه ويژه اي مي کنند و سرمايه گذاري هاي قابل توجهي را در IoT انجام مي دهند.

حتي اگر آنها از اصطلاحات مختلفي مانند "Smarter Planet" توسط IBM ، "اينترنت همه چيز" توسط سيسکو و "اينترنت صنعتي" توسط GE استفاده کنند ، هدف اصلي آنها استفاده از IoT براي بهبود توليدات صنعتي با کاهش زمان خرابي دستگاه غير برنامه ريزي شده و کاهش قابل توجه انرژي است. هزينه به همراه تعدادي از مزاياي احتمالي ديگر [19] ، [48] - [50] ، [55].

IIoT به اشياء صنعتي يا "چيزهايي" که با سنسورها ابلاغ شده اند ، به طور خودکار از طريق شبکه ، بدون تعامل انسان به انسان يا انسان و رايانه ، براي برقراري تبادل اطلاعات و تصميم گيري هوشمندانه با پشتيباني از تجزيه و تحليل پيشرفته [50] .

تعريف "چيزها" در ديد IoT بسيار گسترده است و شامل عناصر جسمي متنوعي است.

اين موارد شامل اشياء شخصي است که ما در اطراف آنها مانند تلفن هاي هوشمند ، تبلت ها و دوربين هاي ديجيتالي داريم.

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

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

شبکه هاي سنسور (SNS) شامل WSN و شبکه هاي حسگر و محرک بي سيم (WSAN) ، ارتباطات RFID ، M2M و SCADA مؤلفه هاي اساسي IoT هستند.

همانطور که در جزئيات بيشتر در اين بخش توضيح داده شده است ، تعدادي از ويژگي هاي IoT از يک يا چند مورد از اين مؤلفه ها به ارث مي برند.

به عنوان مثال ، "محدوديت منابع" از RFID و SNS به ارث مي رسد و "هوش" از WSNs و M2M به ارث مي رسد.

خصوصيات ديگر (e-g- ، شبکه در مقياس فوق العاده بزرگ ، فعل و انفعالات خودبخودي) مختص IoT است.

ويژگي هاي اصلي IoT از ديدگاه زيرساخت ها و کاربردها ارائه شده است.

1) ويژگي هاي زيرساخت IoT:

• دستگاه هاي ناهمگن:

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

در حقيقت ، براي به حداقل رساندن تأثير چنين وسايلي بر محيط و مصرف انرژي ، از راديوهاي کم مصرف احتمالاً براي اتصال به اينترنت استفاده مي شود.

چنين راديوهاي کم توان از WiFi يا فن آوري هاي شبکه سلولي به خوبي تثبيت شده استفاده نمي کنند.

با اين حال ، IoT فقط از دستگاه هاي تعبيه شده و سنسورها تشکيل نخواهد شد ، بلکه براي انجام وظايف سنگين تر (مسيريابي ، سوئيچينگ ، پردازش داده ها و غيره) به دستگاه هاي محاسباتي با مرتبه بالاتر نيز احتياج دارد.

ناهمگوني دستگاه نه تنها از تفاوت در ظرفيت و ويژگي ها ، بلکه به دلايل ديگري از جمله محصولات چند وجهي و الزامات کاربرد نيز ناشي مي شود.

[4] ، [54].

شکل 2 شش دستگاه مختلف IoT را نشان مي دهد.

• محدوديت منابع:

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

همانطور که در شکل 2 نشان داده شده است ، ظرفيت منابع (e-g- ، محاسباتي ، قابليت اتصال و نيازهاي حافظه) از حرکت از چپ به راست کاهش مي يابد.

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

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

• تعامل خود به خود:

در برنامه هاي IoT ، با حرکت دادن اشياء و وارد محدوده ارتباطات اشياء ديگر ، تعامل هاي ناگهاني مي تواند اتفاق بيفتد و منجر به خودبخودي وقايع شود.

به عنوان مثال ، يک کاربر تلفن هوشمند مي تواند با يک تلويزيون / يخچال / ماشين لباسشويي در خانه تماس نزديک داشته باشد و اين امر مي تواند بدون دخالت کاربر حوادث ايجاد کند.

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

• شبکه در مقياس بزرگ و تعداد زيادي رويداد:

در يک محيط IoT ، هزاران دستگاه يا چيز ممکن است حتي در يک مکان محلي (e-g- ، در يک ساختمان ، سوپر مارکت و دانشگاه) با يکديگر در تعامل باشند ، که مقياس بسيار بزرگتر از اکثر سيستم هاي شبکه معمولي است.

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

گارتنر [56] پيش بيني کرده است که نزديک به 26 ميليارد دستگاه در IoT تا سال 2020 وجود دارد.

به همين ترتيب ، تحقيقات ABI [57] تخمين زدند که تا سال 2020 بيش از 30 ميليارد دستگاه به صورت بي سيم متصل خواهند شد.

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

اين تعداد کنترل نشده از رويدادها ممکن است مشکلاتي مانند احتقان رويداد و کاهش توانايي پردازش رويداد ايجاد کند.

• شبکه پويا و بدون زيرساخت:

همانطور که در شکل 2 نشان داده شده است ، IoT دستگاه هايي را در خود ادغام مي کند که بسياري از آنها موبايل ، اتصال بي سيم و محدوديت منابع خواهند بود.

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

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

اين عوامل شبکه را در IoT بسيار پويا مي کند.

در چنين شرايطي ad hoc ، جايي که ارتباطي با يک زيرساخت ثابت وجود دارد محدود يا بدون ارتباط باشد ، پشتيباني از يک شبکه پايدار براي پشتيباني از بسياري از سناريوهاي کاربردي که به IoT بستگي دارد دشوار خواهد بود.

براي فعال نگه داشتن شبکه بايد گره ها همکاري کنند.

• آگاهي از متن:

Context در IoT و برنامه هاي کاربردي آن کليدي است.

تعداد زيادي از سنسورها مقدار زيادي از داده ها را توليد مي کنند که هيچ ارزشي نخواهد داشت مگر اينکه آناليز ، تفسير و درک شوند.

محاسبات آگاه از متن اطلاعات متن مربوط به داده هاي سنسور را ذخيره مي کند و تفسير آن را آسان مي کند.

آگاهي از متن (به ويژه در زمينه زماني و مکاني) نقش مهمي در رفتار تطبيقي ??و خودمختار امور در IoT بازي مي کند [20] ، [58].

چنين رفتاري به از بين بردن تمرکز انسان در IoT کمک مي کند ، که در نهايت انجام ارتباط M2M ، يک عنصر اصلي ديد IoT را آسان مي کند.

• هوش:

مطابق ديد IoT اينتل ، دستگاههاي هوشمند يا چيزها و سيستمهاي هوشمند سيستمها دو عنصر اصلي IoT هستند [59].

در شبکه پويا و IoT IoT ، اين موجودات هوشمند به همراه اشخاص ديگري مانند سرويس هاي وب (WS) ، مؤلفه هاي SOA و اشياء مجازي با هم همکاري خواهند داشت و قادر خواهند بود بر اساس زمينه ، شرايط و يا محيطهاي مستقل عمل کنند [60] ، [ 61].

• آگاهي از موقعيت مکاني:

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

در يک شبکه بزرگ از وسايل ، تعامل بسيار وابسته به مکان ، محيط اطراف آنها و حضور موجودات ديگر (e-g- ، اشياء و افراد) است.

• توزيع شده:

اينترنت سنتي خود يک شبکه جهاني توزيع شده است و IoT نيز چنين است.

بعد مکاني قوي در IoT باعث مي شود شبکه IoT در مقياس هاي مختلف توزيع شود (i-e- ، هر دو در سطح جهان مانند اينترنت و همچنين به صورت محلي در يک منطقه برنامه).

2) ويژگي هاي برنامه هاي IoT:

• برنامه هاي متنوع:

IoT مي تواند خدمات خود را به تعداد زيادي برنامه در زمينه ها و محيط هاي مختلف ارائه دهد.

اين دامنه ها و محيط ها را مي توان در گروههاي دامنه (بدون مصرف) قرار داد ، مانند:

1) حمل و نقل و تدارکات؛ 2) مراقبت هاي بهداشتي؛ 3) محيط هوشمند (خانه ، دفتر و کارخانه)؛ 4) صنعتي؛ و 5) حوزه شخصي و اجتماعي.

شکل 3 برخي از حوزه هاي کاربردي اصلي براي IoT را برجسته مي کند.

برنامه هاي مختلف احتمالاً به معماري هاي مختلف استقرار (e-g- ، رويداد محور و زمان محور) نياز دارند و نيازهاي مختلفي دارند.

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

• به موقع:

برنامه هاي کاربردي با استفاده از IoT مي توانند به طور گسترده به عنوان زمان واقعي و غير واقعي طبقه بندي شوند.

به عنوان مثال ، IoT براي مراقبت هاي بهداشتي ، حمل و نقل نياز به تحويل به موقع داده ها يا خدمات آنها دارد.

تأخير در تحويل داده ها مي تواند برنامه يا سرويس را بي فايده و حتي در برنامه هاي مهم براي ماموريت خطرناک کند.

• همه چيز به عنوان يک سرويس (XaaS):

يک مدل همه چيز Aservice بسيار کارآمد ، مقياس پذير و کاربردي آسان است [62].

مدل XaaS از روش سنجش به عنوان يک رويکرد خدمات در WSNs [63] ، [64] الهام گرفته است ، و اين به ناچار ممکن است IoT را به سمت يک مدل XaaS سوق دهد.

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

• افزايش سطح حمله امنيتي:

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

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

اين به طرز چشمگيري سطح حمله را براي برنامه ها و شبکه هاي IoT افزايش مي دهد.

پيچيدگي ذاتي IoT ، طراحي و استقرار مکانيسم هاي امنيتي کارآمد ، قابل تعامل و مقياس پذير را بيشتر پيچيده مي کند.

• نشت حريم خصوصي:

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

از آنجا که اطلاعات منعکس کننده چنين فعاليت هايي (e-g- ، مسيرهاي مسافرتي ، عادات خريد و استفاده از انرژي روزانه) توسط بسياري از افراد به عنوان خصوصي در نظر گرفته مي شود ، قرار گرفتن در معرض اين اطلاعات مي تواند بر حريم شخصي افراد تأثير بگذارد.

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

هر برنامه IoT که با الزامات حريم خصوصي مطابقت ندارد مي تواند توسط قانون ممنوع شود (e-g- ، در اتحاديه اروپا [65]) زيرا آنها حريم خصوصي شهروندان را نقض مي کنند.

ب- Middleware در IoT و الزامات آن:

به طور کلي ، يک واسط پيچيدگي پيچيدگي هاي سيستم يا سخت افزار را خلاصه مي کند و به توسعه دهنده برنامه اجازه مي دهد تمام تلاش خود را بر روي کار حل کند بدون اينکه حواسش به نگراني هاي متعامد در سطح سيستم يا سخت افزار باشد ، متمرکز شود [67].

چنين پيچيدگي هايي ممکن است مربوط به نگراني هاي ارتباطي يا محاسبات عمومي تر باشد.

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

از ديدگاه محاسبات ، يک ميان افزار لايه اي بين نرم افزار کاربردي و نرم افزار سيستم فراهم مي کند.

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

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

به شرح زير ، اين الزامات به دو مجموعه دسته بندي مي شوند:

1) خدماتي که چنين واسطه اي بايد ارائه دهد و 2) معماري سيستم بايد پشتيباني کند.

1) خدمات مورد نياز Middleware:

الزامات سرويس Middleware براي IoT را مي توان به عنوان کاربردي و غير کاربردي طبقه بندي کرد.

الزامات عملکردي خدمات يا توابع (e-g- ، انتزاع ، مديريت منابع) يک واسطه را فراهم مي کند و الزامات غير عملکردي (e-g- ، قابليت اطمينان ، امنيت و در دسترس بودن) پشتيباني QoS يا مشکلات عملکرد را ضبط مي کند.

نماي ميان افزار در اين مقاله موردي است که خدمات متداول يا عمومي را براي چندين دامنه کاربرد مختلف ارائه مي دهد.

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

• کشف منابع:

منابع IoT شامل دستگاه هاي سخت افزاري ناهمگن (به عنوان مثال ، برچسب هاي RFID ، حسگرها ، سنسور موتور و تلفن هاي هوشمند) ، قدرت و حافظه دستگاه ها ، دستگاه هاي مبدل آنالوگ به ديجيتال (A / D) ، ماژول ارتباطي موجود در آن دستگاه ها و زيرساخت ها يا اطلاعات سطح شبکه (به عنوان مثال ، توپولوژي شبکه و پروتکل ها) و خدمات ارائه شده توسط اين دستگاه ها.

فرضيات مربوط به دانش جهاني و قطعي از در دسترس بودن اين منابع نامعتبر است ، زيرا زيرساخت ها و محيط زيست IoT پويا است.

در صورت لزوم ، مداخله انسان براي کشف منابع غيرممکن است و بنابراين ، يک نياز مهم براي کشف منابع اين است که به صورت خودکار انجام شود.

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

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

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

• مديريت منابع:

يک QoS قابل قبول براي همه برنامه ها پيش بيني مي شود و در محيطي که منابعي که روي QoS تأثير مي گذارد مانند IoT محدود شود ، مهم است که برنامه ها با خدماتي ارائه شوند که مديريت آن منابع را داشته باشد.

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

در معماري هاي IoT ، به خصوص در معماري هاي مبتني بر سرويس يا ماشين مجازي (VM) مبتني بر سرويس ، سرويس واسطه نياز به تأمين ترکيب ترکيب (خدمات) (مجدد) بالقوه خود به خود براي رفع نيازهاي برنامه دارد.

• مديريت دادهها:

داده ها در برنامه هاي IoT مهم هستند.

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

واسط IoT نياز به ارائه خدمات مديريت داده به برنامه ها ، از جمله جمع آوري داده ها ، پردازش داده ها (از جمله پردازش پردازش) و ذخيره سازي داده ها دارد.

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

• مديريت رويداد:

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

مديريت رويدادها رويدادهاي ساده مشاهده شده را به رويدادهاي معني دار تبديل مي کند.

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

• مديريت کد:

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

به طور خاص ، تخصيص کد و خدمات مهاجرت کد لازم است.

تخصيص کد مجموعه دستگاهها يا گره هاي حسگر را که براي انجام يک کار سطح کاربر يا برنامه استفاده مي شود ، انتخاب مي کند.

انتقال کد کد يک گره / دستگاه را به ديگري منتقل مي کند ، گره هاي مجدداً برنامه ريزي مجدد در شبکه.

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

الزامات اصلي غير عملکردي ميان افزار IoT به شرح زير است.

• مقياس پذيري:

براي ايجاد رشد در شبکه و برنامه هاي کاربردي / خدمات IoT ، يک سرويس مياني IoT بايد مقياس پذير باشد.

با توجه به اندازه شبکه IoT ، IPv6 يک راه حل بسيار مقياس پذير براي آدرس دهي است ، زيرا مي تواند با تعداد زيادي از مواردي که بايد در IoT گنجانده شوند مقابله کند [68].

اتصال سست و / يا مجازي سازي در ميان افزار در بهبود مقياس پذيري ، به ويژه مقياس پذيري سطح کاربري و سطح سرويس ، با پنهان کردن پيچيدگي سخت افزار يا منطق سرويس و اجراي آن مفيد است.

• زمان واقعي يا به موقع:

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

از آنجا که IoT با بسياري از برنامه هاي زمان واقعي (e-g- ، حمل و نقل ، مراقبت هاي بهداشتي) سروکار خواهد داشت ، تحويل به موقع اطلاعات يا خدمات در آن برنامه ها بسيار مهم است.

تأخير اطلاعات يا خدمات در چنين برنامه هايي مي تواند سيستم را بي فايده و حتي خطرناک جلوه دهد.

• قابليت اطمينان:

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

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

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

• دسترسي:

واسطه اي که از برنامه هاي IoT پشتيباني مي کند ، به ويژه موارد مهم براي ماموريت ، بايد هميشه در دسترس باشد يا در دسترس باشد.

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

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

• امنيت و حريم خصوصي:

امنيت براي عملکرد IoT بسيار مهم است.

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

آگاهي از متن در ميان افزار ممکن است اطلاعات شخصي (e-g- ، مکان يک شي يا شخص) را فاش کند.

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

• سهولت استقرار:

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

از انجام مراحل نصب و راه اندازي پيچيده بايد جلوگيري کرد.

• محبوبيت:

واسط IoT (مانند هر راه حل نرم افزاري ديگر) بايد بطور مداوم پشتيباني و گسترش يابد.

معمولاً اين تسهيلات در جامعه اي از توسعه دهندگان و محققان ارائه مي شود.

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

2) الزامات معماري:

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

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

• انتزاع برنامه نويسي:

ارائه يک API براي برنامه نويسان برنامه مورد نياز مهم عملکردي براي هر واسطه است.

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

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

سطح انتزاع به نحوه مشاهده برنامه نويس برنامه به سيستم (e-g- ، سطح گره / دستگاه ، سطح سيستم) اشاره دارد.

الگوي برنامه نويسي (e-g- ، انتشار / اشتراک) به الگوي توسعه يا برنامه نويسي برنامه ها يا خدمات مي پردازد.

نوع رابط ، سبک رابط برنامه نويسي را تعريف مي کند.

به عنوان مثال ، رابطهاي توصيفي زبانهاي SQL مانند را براي جستجوي داده [69] ، فايلهاي مشخصات مبتني بر XML براي پيکربندي متن ارائه مي دهند [70].

• قابل تعامل:

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

اجزاي ناهمگن بايد قادر به تبادل داده ها و خدمات باشند.

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

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

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

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

اطلاعات معني دار در مورد خدمات در استفاده از خدمات متعدد براي کاربران مفيد خواهد بود زيرا داده هاي معنايي مي توانند توسط "چيزها" و انسانها در مقايسه با توصيفهاي پروتکل سنتي بهتر درک شوند [71] ، [72].

• خدمات محور:

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

يک واسطه مبتني بر سرويس از طريق مجموعه اي از خدمات (e-g- ، مديريت داده ها ، قابليت اطمينان ، امنيت) مورد نياز برنامه هاي کاربردي ، انتزاعي را براي سخت افزار اساسي در زير فراهم مي کند.

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

• انطباقي:

يک وسط وسايل نرم افزاري بايد سازگار باشد تا بتواند در حال تحول باشد تا بتواند خود را درگير تغييراتي در محيط يا شرايط خود کند.

در IoT ، شبکه و محيط آن به احتمال زياد تغيير مي کنند.

علاوه بر اين ، مطالبات يا زمينه در سطح برنامه نيز ممکن است به طور مکرر تغيير کند.

براي اطمينان از رضايت کاربر و کارآيي IoT ، يک واسطه نياز است تا بطور ديناميکي خود را تطبيق دهد يا خود را تنظيم کند تا متناسب با همه اين تغييرات باشد.

• آگاهي از متن:

آگاهي از متن يک نياز اساسي در ساخت سيستم هاي سازگار و همچنين در ايجاد ارزش از داده هاي حس شده است.

معماري ميان افزار IoT بايد از چارچوب کاربران ، دستگاه ها و محيط آگاه باشد و از آنها براي ارائه خدمات مؤثر و ضروري به کاربران استفاده کند.

• خود مختار:

اين به معناي خودگردان است.

دستگاه ها / فناوري ها / برنامه ها شرکت کنندگان فعال در فرآيندهاي IoT هستند و به آنها امکان مي دهد بدون دخالت مستقيم انسان تعامل و ارتباط برقرار کنند. [5] ، [73].

استفاده از هوش شامل عوامل خودمختار ، هوش جاسازي شده [74] ، رويکردهاي پيش بيني کننده و پيشگيرانه (e-g- ، يک موتور پيش بيني) در ميان افزار مي تواند اين نياز را برآورده سازد [75].

• توزيع شده:

برنامه ها / دستگاه ها / کاربران يک سيستم IoT در مقياس بزرگ (e-g- ، WSNs و شبکه هاي ويژه موقت وسايل نقليه) اطلاعات را تبادل مي کنند و با يکديگر همکاري مي کنند.

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

اجراي ميان افزار بايد از توابع توزيع شده در زيرساختهاي فيزيکي IoT پشتيباني کند.

شکل 4 روابط بين نيازهاي ميان افزار IoT و خصوصيات زيربنايي و کاربردي آن را نشان مي دهد.

همانطور که در اين شکل نشان داده شده است ، اکثر الزامات به طور مستقيم با يک يا چند ويژگي IoT مرتبط هستند.

تعدادي از آنها نيز به طور غير مستقيم (متن سياه) با يک يا چند ويژگي IoT مرتبط هستند.

به عنوان مثال ، نياز به رفتار در زمان واقعي به طور مستقيم با ويژگي هاي زمان واقعي برنامه و به طور غير مستقيم با تعداد زيادي از رويدادها مرتبط است.

همچنين ، برخي از الزامات ميان افزار (e-g- ، کشف منابع و مديريت منابع) به طور مشترک همان مجموعه اي از خصوصيات IoT را ضبط مي کنند.

III- نماي کلي کار موجود:

Middleware در IoT يک منطقه تحقيقاتي بسيار فعال است.

راه حلهاي زيادي بخصوص در دو سال اخير پيشنهاد و اجرا شده است.

اين راه حلها در رويکردهاي طراحي آنها بسيار متنوع هستند (به عنوان مثال ، رويدادهاي مبتني بر رويداد ، پايگاه داده) ، سطح انتزاعات برنامه نويسي (به عنوان مثال ، سطح محلي يا گره اي ، سطح جهاني يا شبکه) و دامنه هاي پياده سازي (به عنوان مثال ، WSN ، RFID ، M2M ، و SCADA).

در اين بررسي ، راه حلهاي ميان افزار موجود براي بحث و گفتگو بر اساس رويکردهاي طراحي آنها گروه بندي شده است ، به شرح زير:

1) واقعه محور. 2) خدمات گرا؛ 3) مبتني بر VM. 4) عامل محور؛ 5) فضاهاي تاپل. 6) پايگاه داده محور. 7) برنامه خاص.

برخي از وسايل واسط از ترکيبي از رويکردهاي مختلف طراحي استفاده مي کنند.

به عنوان مثال ، بسياري از واسطه هاي خدمات گرا (SOM) (e-g- ، SOCRADES و Servilla) همچنين VM را در طراحي و توسعه خود به کار مي گيرند.

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

به نفع فضا ، بحث در مورد هر اثر فقط نکات کليدي را برجسته مي کند ، بدون اينکه بتواند عملکرد آن را در برابر همه الزامات ضبط کند.

براي هر گروه ، آثار مربوطه بصورت مزمن ارائه مي شود.

جداول I - III را براي يک خلاصه جامع ببينيد.

الف - Middlewares مبتني بر رويداد:

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

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

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

يک سيستم رويداد (سرويس رويداد) ممکن است از تعداد بالايي از مؤلفه هاي برنامه (اشخاص) تشکيل شده باشد که رويدادها را توليد و مصرف مي کنند [76].

ميان افزار مبتني بر پيام (MOM) نوعي واسطه مبتني بر رويداد است.

در اين مدل ، ارتباطات به پيامهايي متکي هستند ، که شامل متغيرهاي فوق در مقايسه با رويدادها است.

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

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

اين مدل شامل مجموعه مشترکين و مجموعه ناشران است (همانطور که در شکل 5 نشان داده شده است).

مشترکين امکان دسترسي به جريان داده هاي ناشران را از طريق يک پايگاه داده مشترک دارند و براي وقايع خاص ثبت مي شوند.

اعلان ها درباره وقايع متعاقباً و به صورت غير همزمان به مشترکان ارسال مي شوند [77] ، [22].

اين رويکرد طراحي به الزامات غير عملکردي مانند قابليت اطمينان ، در دسترس بودن ، عملکرد در زمان واقعي ، مقياس پذيري و امنيت مي پردازد [78].

Hermes [79] يک واسطه مبتني بر رويداد است که براي برنامه هاي توزيع شده در مقياس بزرگ ايجاد شده است.

وقايع هرمس مي توانند از نوع يا مبتني بر ويژگي باشند.

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

جدا از مقياس پذيري ، نيازهاي قابليت همکاري و قابليت اطمينان را برطرف مي کند.

هرمس داراي دو مؤلفه ، مشتريان رويداد و کارگزاران رويداد است.

هرمس در معماري خود لايه هاي زير را دارد:

لايه مياني ، لايه مبتني بر رويداد ، ميخانه / زير لايه مبتني بر نوع و ويژگي ، لايه شبکه مسيريابي روکش و لايه شبکه.

لايه مياني مبتني بر رويداد ، API را ارائه مي دهد که برنامه نويسان براي اجراي برنامه ها از آن استفاده مي کنند.

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

تحرک از نظر يک توپولوژي شبکه پويا محدود است.

هرمس از رويدادهاي کامپوزيت يا ذخيره سازي مداوم براي وقايع پشتيباني نمي کند.

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

EMMA [27] اقتباسي از سرويس پيام جاوا (JMS) براي محيط هاي اختصاصي تلفن همراه است.

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

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

علاوه بر اين ، EMMA چندين سبک پيام رساني ارائه مي دهد.

به منظور اجراي سطوح مختلف قابليت اطمينان ، EMMA با پيامهاي پايدار و غيرقابل تحمل متفاوت رفتار مي کند.

EMMA از نظر نسبت زايمان و تأخير عملکرد بسيار خوبي را ارائه مي دهد.

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

همچنين ، به دليل رويکرد طراحي خود ، EMMA از نظر انرژي کارايي ندارد.

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

GREEN [81] يک برنامه مياني مبتني بر رويداد بسيار قابل تنظيم و تنظيم مجدد است که براي پشتيباني از برنامه هاي رايانه اي گسترده که از شبکه هاي ناهمگن و دستگاه هاي ناهمگن استفاده مي کنند ساخته شده است.

GREEN براي کار در انواع شبکه هاي متنوع (i-e- ، MANETs و WAN) توسعه يافته است.

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

جريان زياد رويداد در سيستم با جايگزيني تعامل مبتني بر محتوا با تعامل مبتني بر موضوع ارائه مي شود.

GREEN از رويکرد لنکستر براي ساخت سکوهاي ميانبر قابل تنظيم براي پيروي پيروي مي کند.

ساخته شده است با استفاده از مدل مؤلفه سبک وزن بدون توزيع.

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

ساختار اجزاي آن سبک وزن است و رفتار پويا را ممکن مي کند.

با اين حال ، GREEN مستقل نيست و از پشتيباني متقابل از قابليت همکاري محدود برخوردار است.

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

همچنين استفاده از شبکه هاي روکش چالش هاي جدي را در رفع نيازهاي ميان افزار IoT به ارمغان مي آورد.

RUNES [82] يک واسط مبتني بر کامپوننت براي بزرگتر و مقياس گسترده شبکه ناهمگن سيستم هاي تعبيه شده است.

اين يک معماري استاندارد را ارائه مي دهد که قادر به خود سازماندهي و سازگاري پويا با يک محيط در حال تغيير است.

مانند GREEN ، معماري RUNES از رويکرد Lancaster پيروي مي کند ، که اتصال اجزاي مياني را کاهش مي دهد و از اضافه کردن قطعات جديد در زمان اجرا پشتيباني مي کند.

اجراي اين پروژه بر طراحي چارچوبي است که در آن مي توان اجزاي جديد را در زمان اجرا نصب کرد.

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

همچنين ، RUNES ديد کاملي از الزامات ميان افزار IoT ارائه نمي دهد و دستگاه هاي غني از منابع را در محيط هاي ناهمگن در نظر نمي گيرد.

Steam [76] ، MiSense [83]، [84]، PSWare [85] و TinyDDS [86] نمونه هاي ديگري از وسايل مياني مبتني بر رويداد هستند.

Steam يک سرويس مياني مبتني بر رويداد است که براي حوزه محاسبات موبايل طراحي شده است.

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

MiSense يک ميانبر لايه سبک وزن مبتني بر خوشه است که معاني کاربرد را از سخت افزارهاي اساسي ، سيستم عامل و زيرساختهاي شبکه جدا مي کند.

در MiSense ، هر گره صاحب يک کارگزار است که پيامهاي توليد شده را مديريت مي کند.

اين گره را بيش از حد بارگذاري مي کند و منابع ميان افزار را ناکارآمد مي کند.

PSWare يک واسطه مبتني بر واقعه در زمان واقعي براي WSN است که براي پشتيباني از رويدادهاي کامپوزيت تهيه شده است.

اين امر باعث انتزاع هاي سطح بالا مي شود و به ميزان بيان و دسترسي بالايي دست مي يابد.

ميان افزار TinyDDS [86] امکان همکاري بين WSN ها و شبکه هاي دسترسي را فراهم مي کند.

اين برنامه نويسي زبان برنامه نويسي و قابليت همکاري پروتکل را براساس مشخصات سرويس توزيع داده استاندارد (DDS) ارائه مي دهد.

چارچوب TinyDSS به برنامه هاي WSN اجازه مي دهد تا کنترل سطح خصوصيات و ويژگي هاي غير کاربردي سطح مياني را کنترل کنند.

نتايج شبيه سازي و ارزيابي تجربي نشان داد که TinyDDS بسيار سبک وزن است و داراي ردپاي حافظه کمي است.

با اين حال ، TinyDDS نمايش کاملي از الزامات IoT ارائه نمي دهد و نيازهاي کليدي IoT مانند سازگاري را برطرف نمي کند.

همچنين مکانيسم کنترل توپولوژي را ارائه نمي دهد.

Steam ، PSWare ، MiSense و TinyDDS ناهمگوني يک زيرساخت IoT را برطرف نمي کنند.

اين راه حل هاي ميان افزار فقط براي WSN يا دستگاه هاي تلفن همراه طراحي شده اند.

PRISMA [29] يک واسطه مبتني بر رويداد مبتني بر منابع براي WSN است.

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

PRISMA در بين توسعه دهندگان محبوب است ، و پذيرندگان اوليه را ترغيب مي کند.

طراحي PRISMA يک معماري لايه اي را تشکيل مي دهد که از سه لايه تشکيل شده است:

1) دسترسي؛ 2) خدمات؛ و 3) برنامه.

لايه دسترسي ارتباطات ، جمع آوري داده ها ، تأييد نيازهاي QoS و تنظيم مجدد را مديريت مي کند.

پيکربندي مجدد در چندين مورد (e-g- ، خرابي دستگاه) پشتيباني مي شود.

لايه سرويس يک مؤلفه کشف منابع را ارائه مي دهد.

لايه برنامه پشتيباني براي انتزاع برنامه نويسي را ارائه مي دهد و مسئول دريافت و مديريت پيام هاي برنامه ها است.

PRISMA فرض مي کند WSN ناهمگن و سلسله مراتبي ، با سه سطح:

1) دروازه؛ 2) سر خوشه؛ و 3) گره سنسور.

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

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

همچنين ، روش متمرکز کشف خدمات در IoT مقياس خوبي نخواهد داشت.

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

همچنين ، روي پلتفرم آردوينو طراحي و اجرا شد.

کار آينده با هدف طراحي مجدد معماري PRISMA به منظور پشتيباني از پيکربندي مجدد پويا در زمان اجرا امکان پذير است.

SensorBus [87] يک مادر براي WSN است.

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

براي پاسخگويي به درخواست سرويس از برنامه هاي کاربردي در چندين زمينه ، SensorBus خدمات قابل تنظيم را از طريق ابرداده ارائه مي دهد.

معماري آن داراي سه لايه است ، که براي سرويس ها ، پيام ها و خدمات متن توسعه يافته است.

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

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

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

لايه سرويس زمينه حسگرهاي ناهمگن که اطلاعات را از محيط جمع آوري مي کنند را مديريت مي کند.

اين يک ديدگاه جامع از الزامات ميان افزار IoT ارائه نمي دهد ، و مورد استفاده گسترده اي نيست.

Mires [88] يک مادر ديگر WSN است.

با استفاده از الگوي انتشار / اشتراک ، Mires به مشترکين امکان مي دهد جريان داده هاي مورد نظر خود را انتخاب کرده و داده ها را مستقيماً از سنسورهاي درخواستي دريافت کنند.

Mires به سنسورها اجازه مي دهد تا جمع آوري داده هاي محلي را انجام دهند تا تعداد انتقال پيام و مصرف برق را کاهش دهند.

Mires به منظور تسهيل در توسعه برنامه هاي کاربردي از طريق WSN طراحي شده است.

با اين حال ، ميرس پشتيباني از پيام هاي مداوم را ارائه نمي دهد.

همچنين ، از يک توپولوژي شبکه پويا پشتيباني نمي کند و از نظر تحمل نيز در برابر تقصير نيست.

کار انجام شده با توجه به واسطه IoT محدود است و مانند سنسوربوس Mires را تنها بر روي نيازهاي خاص متمرکز مي کند و يک ديد کلي از نيازهاي ميان افزار IoT ارائه نمي دهد.

در کنار MOM ها ، کارگزاران MQ وجود دارند که از ارتباطات M2M بين سرويس ها يا ارائه دهندگان خدمات و مشترکان خدمات ، تبديل بين پروتکل هاي مختلف حمل و نقل و همگن سازي جريان هاي پيام بين مشترکين و ارائه دهندگان پشتيباني مي کنند.

WebSphere MQ [89] و Mosquitto [90] نمونه هايي از اين رويکرد هستند.

WebSphere MQ ، که در حال حاضر با عنوان IBM MQ شناخته مي شود [91] ، صف هاي پيام ها ، روابط بين برنامه ها و صف ها ، مديريت مجدد مجدد شبکه و انتقال پيام ها به دور شبکه را حفظ مي کند.

مديريت منابع متمرکز بر مديريت صف است ، که ارتباط بين مديران چند صف را برقرار مي کند.

اين رويدادها به عنوان داده هاي بدون تفسير رفتار مي شوند ، که نشان مي دهد WebSphere MQ از فراخواني پشتيباني نمي کند.

همچنين ، از رويدادهاي کامپوزيت يا دست زدن به پيامهاي پيچيده پشتيباني نمي کند.

Mosquitto يک کارگزار MQTT است که امکان برقراري ارتباط بين مشترکين و ناشران از طريق اشتراک موضوع را فراهم مي کند.

هدف اصلي آن ايجاد کانال هاي ارتباطي است و آيا به الزامات IoT نمي پردازد.

اخيراً بسياري از راه حل هاي کارگزار MQ پيشنهاد شده است.

با اين حال ، اينها براي يک محيط IoT طراحي نشده اند.

واسطه هاي مبتني بر رويداد در سيستم هايي که تحرک و خرابي در آنها مشترک باشد مناسب است.

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

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

واسطه هاي وقايع نيز به ندرت مستقل هستند.

الگوي برنامه نويسي در واسطه هاي مبتني بر رويداد در بسياري موارد انعطاف پذير نيست.

پروتکل ها و مدل هاي مناسب براي امنيت و حفظ حريم خصوصي لازم است.

ب- خدمات ميانه سرويس:

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

محاسبات سرويس گرا (SOC) مبتني بر رويکردهاي معماري سرويس گرا (SOA) است و به طور سنتي در سيستم هاي IT شرکت ها مورد استفاده قرار مي گيرد.

ويژگي هاي SOC مانند بي طرفي فن آوري ، اتصال سست ، قابليت استفاده مجدد در سرويس ، قابليت سرويس دهي و قابليت کشف خدمات [92] ، همچنين براي برنامه هاي IoT به طور بالقوه سودمند است.

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

يک SOM پتانسيل دارد که از طريق ارائه کارکردهاي مناسب (همانطور که در شکل نشان داده شده است) اين چالش ها را کاهش دهد.

6) براي استقرار ، انتشار / کشف و دسترسي به خدمات در زمان اجرا.

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

تعداد زيادي از سرويس هاي گرا IoT سرويس گرا در دسترس هستند.

اين واسطه ها را مي توان به عنوان SOM مستقل براي IoT [93] - [97] يا سرويس هاي واسط ارائه شده توسط بستر رايانش ابري به عنوان يک سرويس (PaaS) مدل [98] - [100] طبقه بندي کرد.

Hydra [101] ، که در حال حاضر با عنوان LinkSmart [102] شناخته مي شود ، واسطه اي براي سرويس ها و سيستم هاي اطلاعاتي محيط (AmI) است.

اين بنا بر روي يک معماري SoA و مدل محور ساخته شده است.

معماري آن شامل تعدادي از مؤلفه هاي مديريت از جمله مدير خدمات ، مدير رويداد ، مدير دستگاه ، مدير ذخيره سازي ، مدير زمينه و مدير امنيتي مي باشد.

اين مؤلفه ها به عناصر کاربرد و دستگاه دسته بندي مي شوند که هر کدام داراي يک لايه معنايي ، لايه سرويس ، لايه شبکه و لايه امنيتي هستند.

Hydra قابليت همکاري سطح معنايي و معنايي را با استفاده از WB معنايي فراهم مي کند.

علاوه بر تعدادي مورد نياز عملکردي (e-g- ، مديريت داده ها ، مديريت رويداد و مديريت منابع) ، از پيکربندي مجدد پويا و پيکربندي خود پشتيباني مي کند.

منابع ، دستگاه و مديران هيدرا با بهينه سازي مصرف انرژي در دستگاههاي داراي منبع محدوده ، آن را سبک مي کنند.

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

راه حل امنيتي و حفظ حريم خصوصي آن از مجازي سازي و پياده سازي مکانيسم هاي مبتني بر WS غني شده با وضوح معنايي استفاده مي کند [101].

با اين حال ، مجازي سازي آن ممکن است نگراني هاي امنيتي (e-g- ، حملات کانال جانبي) را ايجاد کند.

همچنين ، راه حل هاي امنيتي معناداري مبتني بر هستي شناسي و قابليت همکاري ، احتمالاً در IoT نامناسب هستند زيرا ، در حال حاضر ، هيچ هستي شناسي استاندارد براي IoT در مقياس بسيار بزرگ وجود ندارد.

ميان افزار SenseWrap [103] پروتکل هاي Zeroconf [104] را با انتزاع سخت افزاري با استفاده از سنسورهاي مجازي ترکيب مي کند.

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

SenseWrap همچنين يک رابط ارتباطي استاندارد براي پنهان کردن جزئيات خاص سنسور از برنامه ها فراهم مي کند.

اين رابط بستگي به مدل سازي سنسور و بسته هاي سفارشي (درايور) براي هر مدل سنسور دارد.

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

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

ميان افزار MUSIC [70] يک معماري مبتني بر مؤلفه خود را براي پشتيباني از ساختمان سيستم ها در محيط هاي همه جا و SoA فراهم مي کند ، جايي که ممکن است تغييرات پويا در ارائه دهندگان خدمات و مصرف کنندگان خدمات ارائه شود.

به طور خاص ، MUSIC بر روي تغييرات در يک سايت ارائه دهنده خدمات متمرکز است تا بتواند قطعات و خدمات ارائه دهنده ويژگي هاي تعريف شده توسط چارچوب کامپوننت ها را مبادله کند.

براي پشتيباني از سازگاري پويا آگاه و QoS مبتني بر متن ، معماري آن حاوي مدير متن ، مدير QoS ، مدير سازگاري ، مخزن برنامه ، مذاکره کننده SLA و نظارت و نظارت و کشف سرويس است. اين مؤلفه ها عملکردهاي متفاوتي را براي ميان افزار ارائه مي دهند.

به عنوان مثال ، در سازگاري مبتني بر برنامه ريزي ، برنامه ريزي (موجود در مخزن برنامه) توسط تغييرات متن تشخيص داده شده توسط مدير زمينه ايجاد مي شود.

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

متن ممکن است حاوي داده هاي شخصي و حساس زيادي باشد (e-g- ، موقعيت مکاني يا علايق کاربر) و در نتيجه خطر نشت حريم خصوصي را افزايش مي دهد.

TinySOA [105] SOM است که سطح بالايي از زيرساخت ها را براي توسعه برنامه هاي WSN ارائه مي دهد.

اين يک API سرويس گرا ساده را ارائه مي دهد که از طريق آن برنامه نويسان برنامه مي توانند از طريق برنامه هاي خود به منابع WSN دسترسي پيدا کنند.

ناهمگوني سطح WSN دستگاه و WSN را کنترل مي کند و يکپارچه سازي آسان برنامه هاي اينترنتي با WSN را به آنها امکان مي دهد تا اطلاعات را از سنسورها جمع آوري کنند.

TinySOA از مکانيسم هاي ساده و تعيين کننده براي ثبت و کشف منابع WSN (e-g- ، گره حسگر) استفاده مي کند.

اين تنها چند مورد اساسي عملکردي (e-g- ، انتزاع ، کشف منابع و مديريت) را پشتيباني مي کند.

SOCRADES [93] ميان افزار چيزهاي بدني را به عنوان خدماتي که از پروفايل دستگاهها براي WS (DPWS) استفاده مي کنند ، انتزاع مي کند.

اين دو اثر پيشين را تمديد کرده است [106] ، [107].

SOCRADES مديريت دستگاه هاي اساسي يا چيزهايي را براي برنامه هاي سازماني (e-g- ، اتوماسيون صنعتي) ساده مي کند.

معماري آن شامل يک لايه براي سرويس هاي کاربردي (e-g- ، ذخيره سازي رويداد) و يک لايه براي خدمات دستگاه (e-g- ، مدير و مانيتور دستگاه ، کشف سرويس ، مديريت چرخه چرخه خدمات) است.

اجزاي مختلف در دو لايه شرايط مختلف SOM را برآورده مي کنند.

به عنوان مثال ، مؤلفه کشف سرويس لايه خدمات دستگاه ، سهم کليدي واسط SOCRADES ، خدمات ارائه شده توسط دستگاهها يا چيزهاي دنياي واقعي را کشف مي کند ، در حالي که مدير دستگاه آن مديريت منابع را مديريت مي کند (e-g- ، دسترسي به دستگاه).

اين دستگاه همچنين کشف دستگاه و خدمات را ارائه مي دهد.

لايه خدمات برنامه مديريت و ذخيره رويداد را فراهم مي کند.

فروشگاه خدمات لايه متقابل SOCRADES ، که بين لايه هاي دستگاه و برنامه ها قرار دارد ، از ترکيب سرويس پشتيباني مي کند ، که ممکن است کاملاً پويا نباشد ، زيرا اين مجموعه به بلوک هاي از پيش تعريف شده ساختمان متکي است.

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

علاوه بر اين ، دسترسي مستقيم به دستگاه ها يا خدمات ارائه شده آنها از طريق اين ميان افزار خطر نقض حريم خصوصي را بالا مي برد.

SensorsMW [108] يک SOM قابل انعطاف و انعطاف پذير براي پيکربندي QoS و مديريت WSN است.

اين WSN ها را به عنوان مجموعه اي از خدمات براي ادغام يکپارچه در يک سيستم اطلاعاتي سازماني خلاصه مي کند.

اين امکان پيکربندي آسان و کارآمد WSN ها را براي جمع آوري اطلاعات با استفاده از WS فراهم مي کند.

طبق گفته هاي SLA ، منابع موجود در WSN با برخي از QoS مطابقت دارند.

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

بنابراين ، برنامه ها مي توانند بين موضوعات متضاد (e-g- ، طول عمر و ميزان نمونه گيري) کنترل و ايجاد کنند.

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

همچنين ، در برنامه هاي مهم ، اين تنظيم مجدد ممکن است شکست بخورد زيرا الزامات سختگيرانه QoS آنها ممکن است اجازه مبادله اي بين منابع لازم را ندهد.

ميان افزار SENSEI [109] معماري را براي آينده و اينترنت دنياي واقعي از جمله IoT ايجاد مي کند.

اين يکي از اولين پيشنهاداتي است که شامل يک مدل زمينه ، خدمات متن ، وظايف تحريک و ترکيب سرويس پويا از هر دو سرويس اوليه و پيشرفته براي اينترنت در دنياي واقعي است.

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

منابع در SENSEI براي مدل سازي معنايي خود از هستي شناسي استفاده مي کنند.

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

ubiSOAP [94] SOM است که شبکه بي سيم WS را فراهم مي کند.

لايه منبع معماري شامل توابع لازم ، از جمله انتزاع يکپارچه براي دستگاه هاي ساده (e-g- ، سنسورها ، محرک ها ، پردازنده ها يا مؤلفه هاي نرم افزار) براي تسهيل در تعامل برنامه ها و خدمات با منابع است.

يک مؤلفه خدمات پشتيباني امکان کشف و ترکيب پويا منابع (خدمات الکترونيکي ، الکترونيکي) را فراهم مي کند.

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

لايه منبع شامل توابع براي حفظ حريم خصوصي و امنيت (e-g- ، احراز هويت) است.

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

اين لايه همچنين قابليت انتخاب QoS آگاه (e-g- ، مصرف انرژي ، در دسترس بودن) براي انتخاب شبکه را ارائه مي دهد.

به طور کلي ، ubiSOAP يک SOM سبک وزن است که با پشتيباني از دستگاه ها و فناوري هاي شبکه ناهمگن ، مديريت منابع و قابليت همکاري سطح شبکه را ارائه مي دهد.

فقدان آگاهي از زمينه در ubiSOAP مي تواند مسئله اي باشد ، زيرا اين امر در رفتار سازگار و خودمختار چيزها مهم است.

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

Servilla [95] توسعه برنامه در WSN هاي ناهمگن را تسهيل مي کند.

از SOC براي جدا کردن کد اختصاصي پلتفرم از برنامه هاي مستقل از پلتفرم استفاده مي کند.

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

معماري Servilla از يک VM و يک چارچوب ارائه خدمات (SPF) تشکيل شده است و بر روي گره هاي سنسور انفرادي در WSN اجرا مي شود.

VM وظايف برنامه را اجرا مي کند در حالي که مصرف کننده SPF خدمات کشف و دسترسي داشته و ارائه دهنده SPF سرويس ها را تبليغ و اجرا مي کند.

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

اتصال سرويس پويا ، همکاري بين شبکه اي را در بين دستگاه هاي ناهمگن کارآمد مي کند.

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

علاوه بر اين ، دسترسي به سطح سنسور فردي مي تواند نقض حريم خصوصي و تهديدات امنيتي را ايجاد کند.

Servilla به طور گسترده مورد استفاده قرار نمي گيرد.

KASOM [110] يک دانش آگاه و SOM (KASOM) براي شبکه هاي جاسازي شده فراگير ، به ويژه براي WSAN است.

معماري آن از سه زير سيستم اصلي تشکيل شده است:

1) خدمات چارچوب (e-g- ، مدير امنيت و زمان اجرا). 2) خدمات ارتباطي (e-g- ، مانيتور منابع)؛ و 3) خدمات مديريت دانش (e-g- ، قوانين ترکيب خدمات و منابع زمينه).

اين خدمات SOA را براي محيط هاي گسترده از طريق ثبت نام ، کشف ، ترکيب و ارکستر خدمات ارائه مي دهند.

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

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

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

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

CHOReOS [111] ، [112] امکان رقص هاي گسترده در مقياس وسيع و يا مجموعه اي از خدمات سازگار ، آگاه از QoS و خدمات ناهمگن را در IoT فراهم مي کند.

اين موضوع مقياس پذيري ، قابليت همکاري ، تحرک و قابليت انطباق پذيري را از طريق رويکردهايي مانند ثبت نام و کشف سرويس مبتني بر چيزهاي احتمالي مقياس پذير مقابله مي کند [45] ، [97].

CHOReOS از چهار جزء تشکيل شده است:

1) ترکيب خدمات eX اجرايي (XSC) براي هماهنگي ترکيب خدمات و چيزها. 2) دسترسي آسان به سرويس (XSA) براي دسترسي به خدمات و موارد. 3) کشف خدمات eXtensible (XSD) براي مديريت پروتکل ها و فرآيندهاي کشف خدمات و امور. و 4) ميان افزارهاي ابري و شبکه اي براي مديريت منابع محاسباتي و هدايت استقرار برنامه هاي رقص.

MobIoT ، يک جزء اصلي CHOReOS [45] ، [97] ، يک SOM مبتني بر چيز براي IoT موبايل است.

بر خلاف اکثر SOM هاي موجود [94] ، [110] ، پروتکل هاي کشف ، ثبت نام و جستجوي سرويس احتمالي مبتني بر چيز ، و الگوريتم ها به خوبي در IoT موبايل پويا.

علاوه بر اين ، تركيبات سرويس يك چيزهاي معنايي با شفافيت و به طور خودکار توسط MobIoT و CHOReOS قابل اجرا هستند ، بدون دخالت كاربران نهايي ، كه در IoT خصوصاً در ارتباطات M2M مطلوب است.

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

به همين دليل ، قابليت اطمينان در اين واسطه ها مي تواند مسئله اي باشد.

علاوه بر اين ، پشتيباني معنايي مبتني بر هستي شناسي در محيط هاي ناهمگن IoT بسيار چالش برانگيز خواهد بود.

موتور پردازشگر سنسور موبايل (MOSDEN) [46] از يک سنجش به عنوان يک مدل خدمات [113] ، که در بالاي GSN ساخته شده است پشتيباني مي کند [21].

استفاده از يک معماري افزونه باعث افزايش قابليت مقياس پذيري و کاربرپردازي کاربر ميان افزار مي شود ، زيرا افزونه هايي براي دستگاه هاي ناهمگن ساخت و در مکان هاي به راحتي قابل دسترسي آسان تر است (e-g- ، Google play).

MOSDEN براي پشتيباني و دستکاري افزونه ها يک مدير افزونه و يک لايه افزونه به GSN اضافه کرد.

همچنين بسته هاي فردي وابسته به سنسور را از GSN با يک بسته بندي عمومي عمومي جايگزين کرد تا بتواند ارتباطات را کنترل کند.

GSN از معماري غير متمرکز P2P [114] و قوانين ترکيب از پيش تعريف شده موجود در سنسورهاي مجازي ، استفاده مي کند ، که ممکن است در شبکه هاي پويا و فوق العاده بزرگ IoT کارايي نداشته باشد.

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

بسياري از سيستم عامل هاي IoT مبتني بر ابر موجود هستند [115] ، [116].

براي ارائه تصور از اين زمينه ، تعدادي از اين موارد در زير خلاصه مي شود و براي سايرين ، خوانندگان به [115] و منابع موجود در آن اشاره مي شود.

Xively [99] PaaS است که خدمات مياني را براي ايجاد محصولات و راه حل هايي براي IoT فراهم مي کند.

عمومي مبتني بر ابر Xively يک دايرکتوري ، داده و خدمات تجاري مبتني بر استاندارد را به توسعه دهندگان ارائه مي دهد.

خدمات دايرکتوري براي يافتن اشياء مناسب با اجازه مناسب کمک مي کند.

خدمات مديريت داده با استفاده از يک پايگاه داده با کارايي بالا و سري زماني ، داده ها را با اطمينان ذخيره و بازيابي کنيد.

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

خدمات تجاري شامل يک سرويس مديريت چرخه چرخه دستگاه از جمله تهيه دستگاه است.

مديريت چرخه چرخه دستگاه Xively و اتوبوس پيام در زمان واقعي از استقرار در مقياس بزرگ و در زمان واقعي در IoT پشتيباني مي کند.

نکته مهم ، پشتيباني از امنيت پايان به پايان در کل سيستم عامل براي اطمينان از يکپارچگي راه حل هاي IoT است.

عدم امنيت ذخيره سازي [117] مي تواند يک مشکل در بسياري از برنامه هاي IoT باشد.

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

اين يک سربار در سيستم ايجاد مي کند.

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

CarrIoTs [98] يک SOM مبتني بر ابر براي IoT است ، به خصوص براي ارتباطات M2M ، و روي آن تمرکز دارد:

مقرون به صرفه توسعه برنامه کاربردي M2M ، مقياس پذيري و سهولت استفاده.

مزيت اصلي CarrIoTs اين است که از مقياس پذيري سطح شبکه پشتيباني مي کند.

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

مانند Xively ، CarrIoTs داده هاي ورودي را استاندارد نمي کند.

همچنين امنيت ذخيره سازي را تضمين نمي کند و پشتيباني متقابل از قابليت همکاري [117] را ارائه مي دهد.

با اين حال ، CarrIoTs و Xively از جوامع فعال آنلاين استفاده مي کنند و در بين توسعه دهندگان و پذيرندگان جديد محبوب هستند.

Echelon [118] يک پلتفرم IIoT با مجموعه اي کامل از تراشه ها ، پشته ها ، ماژول ها ، رابط ها و نرم افزار مديريت براي توسعه دستگاه ها و اجتماعات P2P است.

بر خلاف سيستم عامل IoT مصرف کننده ، آن را مورد نياز اصلي براي IIoT ، از جمله کنترل خودمختار ، قابليت اطمينان از قدرت صنعتي ، پشتيباني از تکامل ميراث ، و امنيت استثنايي.

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

امنيت ابري خصوصي بودن آن از Xively بهتر است ، اما هنوز هم اعتماد به نفس برنامه هاي حساس IIoT نيست.

واسط ارائه شده توسط فقيه و همکاران [119] براي شبکه هاي حسگر چندرسانه اي طراحي شده است و از مقياس پذيري و ناهمگوني سطح شبکه پشتيباني مي کند.

WhereX [120] براي RFID طراحي شده است و عمدتا از مديريت داده پشتيباني مي کند.

در اين بخش مجموعه اي جامع از SOM هاي موجود براي IoT وجود ندارد.

تعدادي از نمايندگي هاي اخير (از سال 2009) براي ارائه مدرن ترين خدمات واسطه گري IoT سرويس گرا پوشش داده شده است.

بررسي SOM اختصاصي WSN (که عمدتا مربوط به قبل از 2009 است) در [121] موجود است.

از آنجا که SOC به طور طبيعي از انتزاع حمايت مي کند و به صراحت با کد سروکار ندارد ، SOM هاي موجود صريحا انتزاع و مديريت کد را در نظر نمي گيرند.

بيشتر SOM هاي موجود محور WSN هستند و مقياس آنها محدود به WSN است ، که معمولاً در دامنه هزاران نفر است ، بسيار کمتر از مقياس فوق العاده بزرگ (ميليارد ها) IoT.

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

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

اکثر SOM هاي مستقل موجود فقط از طريق تأييد اعتبار ، امنيت محدودي را ارائه مي دهند.

همچنين ، امنيت و اعتماد به نفس بستر هاي نرم افزاري ابري مي تواند نگراني بسياري از برنامه هاي IoT باشد.

C- Middlewares مبتني بر VM:

طراحي ميان افزار مبتني بر VM با پشتيباني از برنامه نويسي براي يک محيط اجراي ايمن براي برنامه هاي کاربر با مجازي سازي زيرساخت ، پشتيباني برنامه نويسي را ارائه مي دهد.

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

هر گره در شبکه داراي يک VM است که ماژول ها را تفسير مي کند (همانطور که در شکل 7 نشان داده شده است).

اين رويکرد به الزامات معماري مانند انتزاعات برنامه نويسي سطح بالا ، خود مديريتي و سازگاري مي پردازد ، ضمن اينکه از شفافيت در زيرساخت هاي ناهمگن IoT توزيع شده پشتيباني مي کند [122] ، [123].

VM ها را مي توان به دو دسته تقسيم کرد:

1) VM هاي سطح متوسط ??(VM ها بين سيستم عامل و برنامه ها قرار دارند) و 2) VM سطح سيستم (جايگزين يا جايگزين کل سيستم عامل) [22] ، [122].

VMware هاي سطح Middleware قابليت هاي (e-g- ، همزمان) را به سيستم عامل هاي اساسي اضافه مي کنند [124].

VM's سطح سيستم منابعي را که در غير اين صورت توسط سيستم عامل مصرف مي شود ، آزاد مي کند.

Maté [125] يک واسطه مبتني بر VM است که براي گره هاي حسگر resourceconstrained است.

مات مورد توجه ويژه محققان و توسعه دهندگان قرار گرفته است زيرا محدوديت هايي را در پروژه هاي قبلي (e-g- ، Scylla) نشان مي دهد ، که فقط بر روي تأييد bytecode و تلفيق در پرواز متمرکز شده اند و مترجم کد بايت را که در TinyOS اجرا مي شود ، معرفي مي کند.

مات به طور موثري مديريت منابع را براي شبکه حسگر (e-g- ، پهناي باند يا انرژي) اداره مي کند و پشتيباني از سازگاري را فراهم مي کند [35].

يکي ديگر از اهداف اصلي Maté ، مديريت کد است که با اجازه به روزرساني در برنامه هاي VM حاصل مي شود.

مدل اعدام مات از مدل مبتني بر رويداد همزمان TinyOS به ارث مي رسد.

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

با اين حال ، اين باعث مي شود Maté براي برنامه هاي WSN eventbase [127] مناسب نباشد ، که به يک روش عدم انسداد نياز دارند.

همچنين ، خود VM پس از استقرار از برنامه ريزي مجدد پشتيباني نمي کند [128].

علاوه بر اين ، مات نمي تواند چندين برنامه همزمان را در يک گره اجرا کند [129].

VM * [128] و Melete [130] مبتني بر Maté هستند و با فعال کردن بروزرساني هاي ريز دانه چه در برنامه هاي VM و چه در نرم افزار سيستم ، قابليت مديريت کد را گسترش مي دهند.

VM * يک لايه سرويس اضافه مي کند ، که مديريت منابع را بهبود مي بخشد و استقرار برنامه را آسان مي کند.

با اين حال ، VM * پشتيباني از سازگاري را ارائه نمي دهد.

Melete پشتيباني از برنامه هاي همزمان را افزايش مي دهد.

علاوه بر اين ، Melete يک مکانيسم انتشار کد براي توزيع انتخابي و واکنش پذير کد اضافه مي کند [131].

با اين حال ، فرض مي کنيم که توپولوژي شبکه يک نمودار متصل است ، به اين معني که نمي تواند توپولوژي شبکه پويا را اداره کند.

MagnetOS [132] ، Squawk [133] و Sensorware [129] نمونه هاي ديگري از راه حل هاي سنتي VM هستند.

MagnetOS يک سيستم عامل توزيع شده براي شبکه هاي سنسور است که کل شبکه را به عنوان يک جاوا VM واحد و يکپارچه انتزاع مي کند ، و اين باعث مي شود برنامه هاي نوشته شده براي MagnetOS قابل حمل باشند.

هدف اصلي اين راه حل کاهش مصرف انرژي و افزايش طول عمر شبکه است.

شبيه به MagnetOS ، Squawk يک VM Java کوچک است که از چندين برنامه پشتيباني مي کند ، انواع اتصال نقطه-نقطه را ارائه مي دهد و از کد بهينه سازي شده براي کاهش اثر حافظه استفاده مي کند.

Sensorware راه حل ديگري است که يک مترجم اسکريپت را پياده سازي مي کند تا راهي براي برنامه ريزي WSN بر اساس اسکريپت هاي موبايل فراهم کند.

با اين حال ، MagnetOS ، Squawk و Sensorware براي دستگاههاي محدود کننده منابع نامناسب هستند (i-e- ، آنها داراي يک کد بزرگ هستند و از RMI استفاده مي کنند ، که يک مکانيزم جاوا با وزن سنگين است [122] براي ارتباطات بين مؤلفه ها).

ويژگيهاي محدود کننده منابع WSN محدوديت مهمي را ايجاد مي کند:

VM ها به حافظه قابل توجهي و منابع قدرت پردازشي احتياج دارند ، که باعث مي شود مجازي سازي فقط در دستگاه هاي پر منبع انجام شود [22].

تفسير کد در مقايسه با کد باينري بومي يک سربار زمان قابل توجهي را نشان مي دهد [134].

علاوه بر اين ، زبانها و ابزارهاي جديدي که بايد مورد استفاده قرار گيرند ، منحني يادگيري شيب دار را براي کاربران و توسعه دهندگان ايجاد مي کنند [135]

ماشين هاي مجازي مخصوص برنامه (ASVMs) [124] مشکلات محدود شده توسط راه حل هاي سنتي VM را با محدود کردن کليه VM ها به زير مجموعه هاي مربوط به دامنه (هاي) برنامه ها حل مي کنند [136].

اين نوع VM با کاهش اندازه کد تفسير شده و با استفاده از يک کامپايلر در پرواز به کد بومي ، سربار را به حداقل مي رساند.

از طرف سخت افزار ، سربار تفسير با استفاده از يک کد ويژه کد CPU به حداقل مي رسد.

مات به چارچوبي براي ساختن ASVM ها گسترش يافته است.

نسخه جديد نيازهاي مديريت کد را مرتفع مي کند و با کاهش اندازه کد تفسير شده ، اجراي کد و انتشار کدها را بهبود مي بخشد [137].

همچنين ، براي جلوگيري از انتشار برنامه هاي مخرب از طريق شبکه ، يک مؤلفه سيستم امنيتي اضافه شده است [122].

DVM [138] و DAViM [139] بر اساس مفاهيم معرفي شده توسط ماته است.

هر دو روش مشابهي را براي به روزرساني پويا VM هاي حسگر در نظر مي گيرند.

مانند VM * ، DVM پشتيباني از سازگاري را ارائه نمي دهد.

در مقايسه با DVM ، DAViM به عنوان يک بستر خدمات سازگار با سبک وزن براي شبکه هاي حسگر طراحي شده است [123].

همچنين ، DAViM اجراي همزمان چندين برنامه را امکان پذير مي کند.

با اين حال ، DAViM با هدف دستگاههاي پر منبع است.

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

DAViM از يک هماهنگ کننده براي انجام وظايف مديريت کد لازم استفاده مي کند و اين مؤلفه مي تواند به يک تنگنا در سيستم تبديل شود.

SwissQM [140] ASVM ديگر است و برنامه نويسي WSN را با افزايش سطح انتزاع برنامه نويسي از طريق يک سيستم دروازه اي که برنامه ها و نمايش داده شدهايي را که با يک زبان سطح بالا نوشته شده است ، مي پذيرد.

نگراني اصلي طراحي SwissQM ارائه پشتيباني بهتري براي مديريت داده ها در مقايسه با راه حل هاي واسطه قبلي است.

ملاحظات ديگر طراحي شامل پشتيباني از سازگاري ، مديريت منابع (با تهيه يک محيط پويا ، چندرسانه اي ، چند برنامه نويسي از طريق اجراي سؤالات همزمان) و پشتيباني از مديريت کد (با ارائه امکان برنامه نويسي پويا SwissQM) است.

با اين حال ، تنها زيرمجموعه کد رمزگذاري Java VM موجود است.

کارکردهايي مانند آرايه ها يا انواع مختلف داده ها وجود ندارد.

TinyReef [123] و TinyVM [141] نمونه هاي ديگري از ASVM ها هستند که هزينه تفسير را کاهش مي دهند.

TinyReef يک VM مبتني بر ثبت براي WSN است که نسبت به VM مبتني بر پشته ، اندازه کد و سرعت پردازش بالاتري دارد.

با اين حال واحد پردازش داده استفاده شده توسط دستگاه پشته تنها با عناصر بالاي پشته تعامل دارد.

اين گردش کار سرعت پردازش کد را بهبود مي بخشد و طراحي سخت افزار را بطور چشمگيري ساده مي کند [142].

TinyVM از کد ماشين فشرده شده استفاده مي کند ، که از فشار فشرده سازي CPU و حافظه در موتور جلوگيري مي کند.

با اين حال ، TinyVM براي يک محيط IoT طراحي نشده است.

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

اطلاعات کمي در مورد اين پروژه در دسترس است ، که احتمالاً منجر به محبوبيت کم آن در بين محققان و توسعه دهندگان شده است.

گردش کار مورد استفاده ASVM ها راه حلي مناسب براي حمايت از ناهمگوني زيرساخت هاي IoT نيست زيرا سنگين وزن است ، که با يک ديد براي سخت افزارهاي کوچکتر و ارزان تر سازگار نيست [143].

همچنين ، قابليت حمل و نقل تجاري براي کارايي باعث کاهش انعطاف پذيري و احتمال استفاده مجدد از معاملات مي شود [22].

تحقيقات بيشتر براي رسيدگي به مسائل مربوط به سنگين وزن در حال انجام است ، با Folliot و همکاران [144] پيشنهاد مجازي سازي VM [137].

د- واسطه هاي مبتني بر عامل:

در رويکرد مبتني بر عامل به وسط وسايل نرم افزاري ، برنامه ها براي تسهيل تزريق و توزيع از طريق شبکه با استفاده از عوامل تلفن همراه به برنامه هاي ماژولار تقسيم مي شوند.

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

8) حالت اعدام آنها.

اين امر طراحي سيستمهاي غيرمتمرکز را که قادر به تحمل شکستهاي جزئي هستند ، تسهيل مي کند [145].

تحقيقات قبلي در اين زمينه چندين مزيت را براي استفاده از عوامل تلفن همراه در سيستم هاي توزيع عمومي ارائه داده است [146] ، [147].

در زمينه الزامات ميان افزار IoT ، اين موارد است:

مديريت منابع (کاهش بار شبکه و کاهش تأخير شبکه) ، مديريت کد (اجراي ناهمزمان و مستقل و محوطه سازي پروتکل) ، در دسترس بودن و قابليت اطمينان (استحکام و تحمل خطا) ، سازگاري و ناهمگوني [148].

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

علاوه بر اين ، رويکردهاي مبتني بر عامل ، دستگاههاي محدودکننده منابع را در نظر مي گيرند [134].

Impala [149] يک راه حل مياني براي WSN است که امکان تعديل ، کاربرد و قابليت تعمير در WSN را فراهم مي کند.

اين راه حل مياني بخشي از پروژه ZebraNet بود ، يک سيستم شبکه حسگر تلفن همراه براي بهبود فناوري رديابي از طريق گره هاي رديابي کارآمد با انرژي و تکنيک هاي ارتباط P2P.

Impala برنامه نويسي خارج از هوا را براي مديريت کد اتخاذ مي کند و يک معماري نرم افزاري را که به بهترين وجه براي بهبود بهره وري منابع گره هاي منبع بازتوليد مناسب است توصيف مي کند.

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

با اين حال ، Impala از پردازش داده ها پشتيباني نمي کند ، که يکي از مؤلفه هاي مهم مديريت داده ها است.

پيام هاي هوشمند [150] معماري شبکه مستقل را براي سيستم هاي جاسازي شده در مقياس بزرگ پيشنهاد مي کند ، که به عنوان منابع محدود ، ناهمگن ، بي ثبات شناخته مي شوند.

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

سهم اصلي اين ميان افزار انعطاف پذيري بالا در حضور پيکربندي هاي شبکه پويا است.

با اين حال ، پيام هاي هوشمند از چندين برنامه پشتيباني نمي کند.

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

ActorNet [151] و Agilla [28] همچنين نمونه هاي ميان افزار WSN مبتني بر عامل هستند.

ActorNet يک بستر عامل تلفن همراه براي WSN است که به منظور بهبود مهاجرت کد و ارائه پشتيباني از قابليت همکاري است.

ActorNet خدماتي مانند حافظه مجازي ، تعويض زمينه و چند وظيفه را معرفي مي کند تا اجراي برنامه هاي کاربردي موبايل پيچيده و بسيار پويا را در محيط هايي با محدوديت منابع بسيار فعال کند.

اشکال ActorNet از مکانيسم کشف سرويس استفاده شده است ، که يک پروتکل پخش است که يک سربار اضافي را در شبکه معرفي مي کند.

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

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

با اين حال ، Agilla به دليل محدوديت انرژي و پهناي باند ، از يک فضاي tuple فدرال پشتيباني نمي کند.

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

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

علاوه بر اين ، عوامل تلفن همراه مستعد از دست دادن پيام هستند ، که در کارهاي مهاجرت کد دخالت مي کند.

Ubiware [152] به طور مستقيم به الزامات و دامنه هاي IoT مي پردازد ، و از زمان آغاز آن در جامعه تحقيق و توسعه محبوبيت يافته است.

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

اصول اصلي Ubiware پشتيباني از کشف خودکار منابع ، نظارت ، ترکيب ، فراخواني و اجراي برنامه هاي مختلف است.

يک عامل Ubiware در سه لايه توزيع مي شود:

1) يک موتور رفتاري که در جاوا پياده سازي شده است. 2) يک لايه مياني اعلاني (مدل هاي رفتاري متناسب با نقش هاي عامل). و 3) يک لايه سوم ، که شامل منابع مشترک و قابل استفاده مجدد است که به عنوان مؤلفه هاي جاوا (حسگرها ، محرک ها ، ماشين هاي هوشمند و دستگاه ها ، RFID ها ، WS و غيره) تفسير مي شوند.

Ubiware براي پشتيباني از الزام امنيتي ، سياستهاي امنيتي را اضافه مي کند.

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

اين با استفاده از ابرداده و هستي شناسي پشتيباني مي شود.

با اين حال ، پشتيباني از قابليت همکاري محدود است.

به عنوان مثال ، قابليت همکاري بين پروتکلهاي کشف منابع مختلف را پوشش نمي دهد.

UbiROAD [153] يک واسطه معنايي براي محيط هاي جاده هاي هوشمند آگاه است.

اين امر به قابليت همکاري بين دستگاههاي ناهمگن درون خودرو و کنار جاده مي پردازد.

قابليت همکاري معنايي توسط دو لايه حاصل مي شود:

1) قابليت همکاري سطح داده ها و 2) قابليت همکاري و هماهنگي سطح پروتکل عملکردي.

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

اين ناهمگن با توجه به مؤلفه ها ، استانداردها ، قالب هاي داده و پروتکل ها است.

اين کار با به کارگيري عوامل توزيع شده خود سازگار است و ترکيب آگاهي و زمينه سازگاري و تنظيم مجدد را تضمين مي کند.

اين الزامات با شخصي سازي ، شخصي سازي ، رفتار پويا و استقلال خدمات حاصل مي شود.

مديريت اعتماد به نفس از طريق حاشيه نويسي معنايي حاصل مي شود.

UbiROAD سطح بالايي از ايمني را تضمين مي کند.

AFME [154] ، MAPS [155] ، MASPOT [147] و TinyMAPS [156] راه حل هاي مبتني بر جاوا هستند که برنامه نويسي عامل محور برنامه هاي WSN را قادر مي سازند.

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

MAPS مبتني بر معماري نمايانگر سبک وزن است و مجموعه اي از خدمات را براي پشتيباني از مديريت عامل ارائه مي دهد.

MASPOT عمومي MAPS را گسترش داده و قابليت هاي مهاجرت كد آن را بهبود مي بخشد.

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

درگاه هاي TinyMAPS MAPS را روي دستگاه هاي بسيار محدودتر از منابع استفاده شده توسط MAPS در دستگاه ها قرار مي دهند.

TinyMAPS يک تلاش مداوم براي بهينه سازي مکانيزم هاي انتقال و انتقال کد است.

با اين حال ، TinyMAPS تحرک را که يک ويژگي مهم زيرساخت IoT است ، در نظر نمي گيرد.

راه حل هاي مياني مبتني بر عامل ارائه شده (i-e- ، Impala ، پيام هاي هوشمند ، Agilla ، AFME ، ActorNet ، MAPS ، MASPOT و TinyMAPS) ناهمگوني يک زيرساخت IoT را برطرف نمي کنند.

اين راه حلها فقط براي WSN يا دستگاه هاي تلفن همراه طراحي شده اند.

همه بر روي يک پلت فرم سخت افزاري / نرم افزاري خاص (e-g- ، Mica2 ، MicaZ ، TelosB TinyOS ، Hewlett-Packard / Compaq iPAQ Pocket PC که لينوکس و Sun SPOT را اجرا مي کنند) آزمايش شده اند.

علاوه بر اين ، اين راه حل هاي ميان افزار به مسائلي مانند تضمين هاي زمان واقعي سخت نمي پردازند.

امنيت و حريم خصوصي به طور کلي در نظر گرفته نمي شود.

به طور کلي ، اين پروژه ها محبوب هستند ، گرچه پذيرندگان اوليه اکنون خواستار راه حل هايي هستند که براي يک محيط IoT طراحي شده اند.

چشم انداز IoT پشتيباني از اتصال اشياء مختلف دنياي بدني به يک زيرساخت مشترک است و طراحي سيستمي که اين امر را امکان پذير کند ، يک فرايند پيچيده است.

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

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

الگوهاي و اثرات متقابل آنها نامشخص است [157].

علاوه بر اين ، عوامل تلفن همراه به ويژه در محيط هاي محدود شده با منابع مستعد ابتلا به پيام هستند.

اين محدوديت هاي بسياري را براي يک راه حل ميان افزار IoT از جمله توانايي انجام وظايف مديريت کد ايجاد مي کند.

E- وسايل واسط وسايل فضايي Tuple:

در ميانه هاي فضايي تاپل ، هر يک از اعضاي زيرساخت داراي يک ساختار فضايي محلي تاپل هستند.

فضاي tuple يک مخزن داده است [159] که به طور همزمان مي توان به آن دسترسي داشت.

تمام فضاهاي تاپل فضاي توپل فدرال را تشکيل مي دهند (در شکل نشان داده شده است).

9) در يک دروازه.

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

برنامه هاي کاربردي با نوشتن تاپل ها در يک فضاي tuple فدرال ، و با خواندن آنها از طريق تعيين الگوي داده هاي مورد علاقه خود ، ارتباط برقرار مي کنند.

LIME [160] ، TinyLIME [161] و TeenyLIME [162] راه حل هاي واسطه اي ميان واسطهاي فضايي هستند که هرکدام براي يک محيط خاص تهيه شده اند ، از شبکه هاي ويژه تلفن همراه تا شبکه هاي حسگر.

LIME يک واسطه براي MANET است که براي پرداختن به محدوديت هاي انرژي دستگاه هاي تلفن همراه ايجاد شده است.

LIME مدل هماهنگي را از ليندا [163] قرض گرفته و تطبيق مي دهد ، و فضاي متمرکز شده روي دروازه را به فضاهاي مختلف تاپل تقسيم مي کند ، هر کدام به طور دائم به يک جزء موبايل متصل مي شوند.

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

LIME از انتزاعات برنامه نويسي خوب براي بهره برداري از يک زمينه در حال تغيير پويا پشتيباني مي کند.

با اين حال ، آگاهي از متن آن محدود است (e-g- ، از پيکربندي سيستم آگاهي ندارد).

اين پشتيباني محدود براي مديريت منابع ، مديريت رويدادها و مقياس پذيري ارائه مي دهد و هيچ مکانيسمي براي امنيت يا حفظ حريم خصوصي فراهم نمي کند.

محدوديت ديگر اين است که يک برنامه مي تواند فقط از نزديکي به فضاي فشرده سازي سنسورها دسترسي داشته باشد.

TinyLIME با اضافه کردن مؤلفه هاي ويژه براي شبکه هاي حسگر ، در LIME ايجاد مي کند.

با اين حال ، TinyLIME پشتيباني محدود را براي سازگاري ارائه مي دهد و هيچ مکانيسم امنيتي ندارد.

TeenyLIME يک پسوند LIME و TinyLIME است.

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

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

اين کار براي کاهش مصرف انرژي و بهبود داده هاي حساس به متن جمع آوري انجام شده است.

اشکال LIME ، TinyLIME و TeenyLIME اين است که آنها براي محيط هايي طراحي شده اند که در آن مشتري معمولاً فقط بايد از داده هاي سنسورهاي محلي پرس و جو کند.

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

در يک محيط IoT ، اين رويکرد براي پشتيباني از خدمات يا برنامه هاي توزيع شده کافي نيست.

TS-Mid [164] يکي ديگر از وسايل ارتباطي فضايي مناسب براي WSN است که يک سبک ارتباطي ناهمزمان و جداشده را در زمان و مکان مستقر مي کند.

مانند TIMELIME و TeenyLIME ، TS-Mid از همان روش جمع آوري داده ها در يک دروازه پيروي مي کند.

با اين حال ، TS-Mid سلسله مراتب ساختار گره را با ايجاد مناطق منطقي (يا گروه ها) براي گره در مجاورت بهبود مي بخشد.

وظايفي که قبلاً در دروازه انجام مي شد ، اکنون در يک گره رهبر منتخب در گروه انجام مي شود.

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

گره سينک توسط مشتريان سؤال مي شود.

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

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

با اين وجود ، از زمان واقعي ، امنيت يا حفظ حريم خصوصي پشتيباني نمي کند.

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

A3-TAG [165] از ساختار گره سلسله مراتبي استفاده شده در TS-Mid پيروي مي کند ، تا به خود سازگاري و انتشار وظايف تنظيمات جديد از طريق ارتباط گروهي بپردازد.

با اين حال ، A3-TAG داراي اشکالاتي مشابه است:

گره رهبر به يک تنگنا در گروه تبديل مي شود و يکنواختي در استفاده از انرژي را فراهم نمي کند.

علاوه بر اين ، به دليل مکانيسم ارتباطي مورد استفاده ، A3-TAG به دستگاههاي غني از منابع مراجعه مي کند.

راه حل هاي ميان افزار tuple-فضاها ارائه شده در اينجا (i-e- ، LIME ، TinyLIME ، TeenyLIME ، TS-Mid و A3-TAG) فقط براي WSN يا دستگاه هاي تلفن همراه طراحي شده اند.

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

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

مدل برنامه نويسي آنها به طور کلي قابل برنامه ريزي نيست و آنها پشتيباني محدودي را براي سازگاري يا مقياس پذيري ارائه مي دهند.

با اين وجود ، آنها در بين محققان محبوب هستند.

F- واسطه هاي بين المللي محور:

در ميان افزار مبتني بر پايگاه داده ، يک شبکه حسگر به عنوان يک سيستم پايگاه داده رابطه اي مجازي (همانطور که در شکل 10 نشان داده شده است) مشاهده مي شود.

شکل 10. مدل طراحي کلي براي يک واسطه گر مبتني بر بانک اطلاعاتي.

يک برنامه مي تواند با استفاده از يک زبان پرس و جو مانند SQL ، از پايگاه داده پرس و جو کند ، که مي تواند فرمول نمايش داده هاي پيچيده را امکان پذير کند [22].

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

SINA [166] رويدادها را اداره مي کند و همچنين مي تواند با تحرک گره پرس و جو (سينک) سؤال کند [167].

اين برنامه به برنامه هاي حسگر اجازه مي دهد تا پرس و جوها و کارهاي مربوط به فرمان را صادر كنند ، پاسخ ها و نتايج را جمع آوري كنند و تغييرات درون شبکه ها را تحت نظر داشته باشند.

SINA از مديريت منابع هر چند نظارت بر منابع پشتيباني مي کند.

اين پشتيباني از جمع آوري پيش پردازش داده ها را پشتيباني مي کند.

ماژول هاي SINA که در هر گره سنسور کار مي کنند ، سازماندهي تطبيقي ??اطلاعات حسگر را فراهم مي کنند و پرس و جو ، نظارت بر رويداد و قابليت هاي کار را تسهيل مي کنند.

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

اگرچه تطبيقي ??و خودمختار است ، اما قابليت همکاري و آگاهي از زمينه در SINA برطرف نمي شود.

SINA امن يا خصوصي نيست.

COUGAR [168] يکي ديگر از واسطه هاي پايگاه داده محور است.

اين يک برنامه افزودني به سيستم پايگاه داده شي-رابطه اي شکارچي کرنل است.

در COUGAR ، دو نوع داده وجود دارد:

1) داده هاي ذخيره شده و 2) داده هاي حسگر.

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

توابع پردازش سيگنال با استفاده از انواع داده انتزاعي مدل سازي مي شوند.

نمايش داده شدگان طولاني با استفاده از يک زبان SQL شبيه سازي مي شوند.

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

COUGAR دسترسي انعطاف پذير و مقياس پذير از مجموعه هاي بزرگ حسگرها را فراهم مي کند.

از جنبه هاي الزامات عملکردي و غير کاربردي ، از مديريت رويداد يا کد پشتيباني نمي کند.

IrisNet [169] يک بستر پايگاه داده محور است ، که خدمات ناهمگن را در WSN ها مستقر مي کند.

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

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

توزيع و سبک است.

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

معماري IrisNet دو لايه است.

سنسورهاي ناهمگن يک رابط مشترک مشترک را پياده سازي مي کنند و عوامل سنجش (SA) ناميده مي شوند.

داده هاي توليد شده توسط سنسورها در يک پايگاه داده توزيع شده ذخيره مي شوند که بر روي عوامل سازمان دهنده (OA) پياده سازي مي شود.

خدمات مختلف سنجش همزمان بر روي معماري اجرا مي شوند.

از آنجا که گره هاي پردازش هميشه نيرو مي گيرند ، IrisNet براي مصرف انرژي بهينه نمي شود.

بسياري از چالش هاي معماري برطرف نمي شوند ، مانند:

قابليت همکاري ، زمينه آگاهي ، رفتار خودمختار ، سازگاري.

Sensation [170] واسطه اي مبتني بر بانک اطلاعاتي است که براي برنامه هاي WSN تهيه شده است ، و به منظور پشتيباني از سنسورهاي مختلف ، زيرساخت هاي شبکه و فناوري هاي ميان افزار طراحي شده است.

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

Sensation يک مدل برنامه نويسي سطح بالا و بصري براي برنامه هاي کاربردي فراگير آگاهانه فراهم مي کند.

اين برنامه از آگاهي و مقياس پذيري انرژي پشتيباني مي کند.

از طريق درخواست هاي همزمان (نمايش داده شد) داده هاي درخواستي را بازيابي مي کند و پاسخ هاي مربوطه را در زمان واقعي برمي گرداند.

حساسيت براي پايش دوره اي مقادير سنسور طراحي شده است.

برنامه هاي مربوط به متن از برنامه نويسي مبتني بر رويداد براي ايجاد اقدامات پس از ايجاد حوادث از WSN استفاده مي کنند.

TinyDB [69] ، [171] يک سيستم ميان افزار پردازش پرس و جو توزيع شده مبتني بر TinyOS است.

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

کاهش مصرف انرژي از طريق کاهش تعداد پيامهايي که بايد رد و بدل شوند فعال مي شود.

در حالي که TinyDB پشتيباني از انتزاع برنامه نويسي و يک مدل جمع آوري داده ها را ارائه مي دهد ، عملکرد سرويس مياني زيادي را ارائه نمي دهد ، بنابراين برنامه ها بايد خود چنين عملکردهايي را انجام دهند.

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

اين فرآيند از پردازش رويداد پشتيباني مي کند و فرآيندهاي آن براي استفاده از انرژي بهينه مي شود.

GSN [172] يک پروژه محبوب در بين توسعه دهندگان و محققان است و در پروژه هاي ديگر (e-g- ، OpenIoT) يکپارچه شده است.

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

با استفاده از مشخصات اعلامي ، سنسورهاي مجازي مي توانند در زمان اجرا در ظروف GSN مستقر و دوباره تنظيم شوند.

GSN محيط پردازشي بسيار پويا ايجاد مي کند و به سيستم اجازه مي دهد تا به سرعت در برابر تغيير نيازهاي پردازش و شرايط محيطي واکنش نشان دهد.

مديريت منابع پويا سه وظيفه اصلي را انجام مي دهد:

1) تقسيم منابع؛ 2) مديريت شکست؛ و 3) کنترل صريح منابع.

با افزايش تعداد مشتري ، ميانگين زمان پردازش براي هر مشتري کاهش مي يابد ، که باعث مقياس پذيري مي شود [26].

GSN دسترسي ساده و يکنواخت به ميزبان فناوريهاي ناهمگن در دسترس دارد و استقرار آن آسان است.

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

KSpot + [173] يک معماري واسط توزيع داده محور براي WSN است.

اين شبکه آگاه است و از معاني پرس و جو پيشرفته براي جمع آوري داده ها پشتيباني مي کند.

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

KSpot + مکانيسم کشف منابع غيرمتمرکز را فراهم مي کند.

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

توجه خاص به مقياس پذيري داده شد ، تا اطمينان حاصل شود که عملکرد KSpot + استانداردهاي QoS قابل قبول را بدون توجه به افزايش اندازه شبکه حفظ مي کند.

اين برنامه از حريم خصوصي ، يا کد يا مديريت رويداد پشتيباني نمي کند.

اين زمان واقعي ، آگاهي از متن ، پويا يا تطبيقي ??نيست.

HyCache [174] يک واسط ذخيره حافظه در سطح برنامه براي سيستم هاي فايل توزيع شده مبتني بر طراحي پايگاه داده محور است.

سيستم هاي پرونده توزيع شده در بالاي HyCache در تمام گره هاي داده مستقر مي شوند.

استراتژي HyCache دستيابي به جريان نوشتن سريع و مقياس پذير است.

اين امر در صورتي حاصل مي شود که مشتري داده ها را فقط در محلي ذخيره کند ، که مديريت ذخيره سازي داده ها را فراهم مي کند.

HyCache از جمع آوري پيش پردازش داده ها پشتيباني مي کند و با پيوستن همه نوشتن ها با جريان I / O محلي ، بهينه سازي جريان را بدست مي آورد.

HyCache از کشف و توزيع منابع مديريت توزيع نظارت مي کند.

اين نرم افزار انتزاعات برنامه نويسي پويا را ارائه مي دهد.

از دستگاههاي ذخيره سازي ناهمگن براي سيستم هاي فايل توزيع شده استفاده مي کند و کاملاً در فضاي کاربر کار مي کند.

اين موضوع با مسائل امنيتي و حريم خصوصي يا مديريت کد سروکار ندارد.

اين خدمات در زمان واقعي ارائه نمي دهد.

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

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

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

بيشتر برنامه هاي IoT در زمان واقعي و مکان مهم هستند ، زمان واقعي است.

واسطه هاي پايگاه داده از به موقع پشتيباني نمي کنند.

مصرف انرژي با جمع آوري داده ها از گره هاي فردي کاهش مي يابد.

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

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

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

G- برنامه هاي کاربردي واسطه هاي خاص:

يک رويکرد خاص برنامه (به عنوان مثال ، نرم افزار محور) به ميان افزار متمرکز بر پشتيباني از مديريت منابع (يعني پشتيباني QoS) براي يک برنامه خاص يا دامنه برنامه با اجراي معماري است که شبکه يا زيرساخت ها را به خوبي تنظيم مي کند (همانطور که در تصوير نشان داده شده است شکل.

11) بر اساس نياز برنامه يا دامنه برنامه.

AutoSec ??[175] و Adaptive Middleware [176] نمونه هايي از اين رويکرد هستند.

AutoSec ??از يک کارگزار سرويس پويا براي مديريت منابع در يک سيستم توزيع شده استفاده مي کند.

اين کار با ترکيبي مناسب از سياست هاي جمع آوري اطلاعات و تهيه منابع بر اساس شرايط فعلي سيستم و الزامات کاربرد انجام مي شود.

AutoSec ??از نظر کاربردي خاص است به اين معني که فقط از يک برنامه همزمان پشتيباني مي کند.

Adaptive Middleware به بررسي مبادله بين هزينه منابع و کيفيت در حين جمع آوري اطلاعات مي پردازد.

هدف اصلي کاهش انتقال بين گره هاي سنسور بدون به خطر انداختن نتيجه کلي است.

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

MiLAN [177] مشابه Adapterive Middleware است ، اگرچه MiLAN به منظور پاسخگويي به نيازهاي برنامه ، مفهوم سازگاري فعال را بررسي مي کند.

MiLAN به برنامه ها اجازه مي دهد تا شرايط QoS خود را مشخص کرده و پيکربندي شبکه را در زمان اجرا تنظيم کنند.

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

Adaptive Middleware و MiLAN هر دو به دانش در مورد سنسورهاي دقيق احتياج دارند.

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

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

علاوه بر اين ، MiLAN هزينه کسب اطلاعات را در نظر نمي گيرد.

همچنين ، به تحرک نيز نمي پردازد.

MiLAN براي مشاوره و نظارت پزشکي طراحي شده است.

TinyCubus [178] يک چارچوب لايه اي است که در بالاي TinyOS اجرا شده است.

اين يک چارچوب عمومي ، گسترده و انعطاف پذير را ارائه مي دهد که مي تواند نيازهاي برنامه جديد را مديريت کند.

نيازهاي خاص برنامه با سفارشي کردن اجزاي عمومي راضي مي شوند.

با اين حال ، طراحي لايه متقاطع يک سربار اضافي توليد مي کند ، که براي مصرف انرژي مضر است.

همچنين ، اين راه حل نرم افزاري مقياس پذير نيست.

TinyCubus براي نظارت بر پل ها براي نقص ساختاري و سيستم هاي کمک راننده طراحي شده است.

MidFusion [179] بر پايه مفاهيم ارائه شده در MiLAN و Adapterive Middleware است.

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

در مقايسه با MiLAN و Adaptive Middleware ، MidFusion از هزينه کسب اطلاعات به عنوان معيار انتخاب بهترين مجموعه سنسورها يا عوامل حسگر استفاده مي کند.

MidFusion براي برنامه هاي کاربردي که همجوشي اطلاعات را انجام مي دهند (e-g- ، يک سيستم تشخيص نفوذگر) طراحي شده است.

راه حلهاي خاص برنامه ، ناهمگوني زيرساخت IoT را برطرف نمي کند ، زيرا بين برنامه هاي کاربردي و لايه مياني وجود دارد.

علاوه بر اين ، رويکرد ويژه برنامه هاي کاربردي فقط راه حل هاي تخصصي مياني را به جاي راه حل هاي هدف کلي ايجاد مي کند.

اين مورد نيازهاي ميان افزار IoT را برآورده نمي کند زيرا يک راه حل IoT بايد از چندين برنامه پشتيباني کند.

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

علاوه بر اين ، اين اشکالاتي باعث مي شود اين نوع راه حل هاي ميان افزار براي پذيرندگان فن آوري جذاب نباشد.

جداول I-III قابليت هاي عملکردي ، غير کاربردي و معماري واسطه هاي مورد بررسي را خلاصه مي کند.

در جمع کردن جداول ، از چند افسانه رايج استفاده مي شود [مانند- ، پشتيباني شده (S) ، پشتيباني نشده (NS) ، هيچ اطلاعاتي (NI) - اگر اطلاعاتي در مورد نياز موجود نباشد) همراه با افسانه هاي خاص مورد نياز [مانند- ، براي نيازهاي سبک وزن:

حافظه مورد نياز (M) و راندمان انرژي (E)].

IV- چالش هاي تحقيقاتي و دستورالعمل هاي آينده را باز کنيد:

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

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

نکته مهم اين است که ، اکثر واسطه هاي فعلي آدرس WSN هستند ، در حالي که ساير ديدگاه ها (e-g- ، M2M ، RFID و SCADA) به ندرت مورد توجه قرار مي گيرند.

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

الف - چالش هاي مرتبط با الزامات عملکردي:

کشف منابع:

ماهيت پويا و فوق العاده بزرگ در زيرساخت IoT ثبت نام منابع متمرکز و رويکردهاي کشف را بي اعتبار مي کند.

با اين حال ، تصميم گيري بين راه حل هاي کاملاً توزيع شده و ترکيبي پيچيده است.

مبادله اي بين توزيع رجيستري و تعداد ثبت ها ضروري است.

کمتر ثبت نام ها باعث کشف مداوم و سريع منابع در شرايط عادي مي شوند ، اما در صورت وجود تعداد زيادي از پرس و جوهاي کشف سرويس در برنامه هاي IoT ، مقياس خوبي نخواهند داشت.

منابع احتمالي (به عنوان مثال ، خدمات) ثبات و کشف [45] ، [97] ، [180] مي توانند مقياس پذير باشند ، اما ممکن است در برنامه هاي کاربردي (به عنوان مثال ، برنامه هاي مهم بحراني) که به کشف تضميني منابع با دقت بالا نياز دارند ، کارايي نداشته باشد. .

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

مديريت منابع:

درگيري هاي مکرر منابع در برنامه هاي IoT که منابع را به اشتراک مي گذارند (e-g- ، محرک).

براي حل اختلافات در تخصيص منابع در بين چندين سرويس يا برنامه هاي همزمان ، به حل مناقشه نياز خواهيد بود.

اين مورد در اکثر راه حل هاي ميان افزار موجود موجود نيست ، به جز ubiSOAP [94] (جداول I و IV).

براي کارهاي آينده در اين زمينه زمينه مشخصي وجود دارد.

رويکرد مشارکتي مبتني بر عامل براي حل مناقشه [181] مي تواند نقطه شروع خوبي براي مديريت منازعه خودمختار باشد.

مديريت دادهها:

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

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

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

علاوه بر اين ، هيچ رويکردي فشرده سازي داده ها را ارائه نمي دهد.

اين يک مسئله مهم براي تحقيقات است زيرا بسياري از دستگاه هاي IoT از نظر منبع بازبيني محدود شده اند و انتقال داده ها گرانتر از پردازش محلي است [87].

مديريت رويداد:

تعداد زيادي از رويدادها در IoT فعال و واکنش پذير ايجاد مي شوند.

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

بسياري از برنامه هاي مياني مورد بررسي قرار گرفته يا نمي توانند براساس اين الزام آزمايش شوند.

همچنين ، وقايع مي توانند بدوي (i-e- ، ساده) يا پيچيده باشند.

اکثر واسطه ها بطور آماري نحوه انجام يک رويداد را مشخص مي کنند.

کارهاي بعدي بايد حوادث پيچيده و چگونگي اداره حوادث ناشناخته را در نظر بگيرد.

علاوه بر اين ، کار ارائه شده تفاوت بين گسسته (e-g- ، باز کردن درب ، روشن کردن چراغ) و رويدادهاي مداوم (e-g- ، رانندگي يک ماشين) را در نظر نمي گيرد.

مديريت کد:

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

به روزرساني ها يا تغيير در منطق تجارت بايد توسط هر مؤلفه IoT پشتيباني شود.

واسطه هاي مبتني بر عامل ، مبتني بر VM و برنامه هاي ويژه پشتيباني از مديريت کد را ارائه مي دهند.

با اين حال ، پشتيباني از آنها براي تخصيص کد و انتقال کد محدود است.

بسياري از آنها بين کد منطق تجارت (i-e- ، کد برنامه) يا کد سيستم عامل فرق نمي گذارند.

علاوه بر اين ، هيچ يک از اين دو مورد را کنترل نمي کند.

بسياري از واسطه ها فقط دستگاه هاي همگن را در نظر مي گرفتند ، گرچه رويکردهاي VM اين مسئله را از طريق مهاجرت و تخصيص کد تفسير ، به جاي کدگذاري شده ، برطرف مي کنند.

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

ب- چالش هاي مربوط به الزامات غير عملکردي:

مقياس پذيري:

از آنجا که بيشتر مراکز بين المللي موجود محور areWSN هستند ، مقياس پذيري سطح شبکه آنها نيز محدود به WSN است.

آنها به احتمال زياد عملکرد ضعيفي در شبکه فوق العاده IoT دارند.

از همه مهمتر ، مقياس پذيري يک نياز گسترده به سيستم است ، براي دستيابي به مقياس پذيري در کل سيستم ، هر مؤلفه (e-g- ، کشف منابع ، راه حل امنيتي ، آگاهي از زمينه) از وسايل واسطه هاي متوسط ??مي باشد.

به موقع:

برنامه ها و خدمات به ارتباط مستقيم با دنياي فيزيکي متکي هستند.

دريافت اطلاعات زمان واقعي در مورد وضعيت دنياي واقعي هنوز يک کار چالش برانگيز است.

بعضي از رويکردهاي ميان افزار به روش غير واقعي ماهيت (e-g- ، بانک اطلاعاتي يا وسط فضاي متوسط) هستند ، در حالي که بقيه خدمات حداقل در زمان واقعي ارائه مي دهند.

زمان واقعي سخت را مي توان با رويکرد ميان افزار خاص برنامه و چند واسطه مبتني بر رويداد ارائه داد.

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

قابليت اطمينان:

در اکثر پيشنهادات موجود مورد توجه قرار نمي گيرد.

براي دستيابي به قابليت اطمينان ميان افزار ، هر مؤلفه يا خدمات يک واسطه نياز به يکپارچه قابل تعويض دارد.

بين قابليت اطمينان و ساير الزامات (e-g- ، فشرده سازي مديريت داده ها ، وزن سبک / کارآيي انرژي) وابستگي روشني وجود دارد که بايد بهتر درک و بهره برداري شود.

زمينه هاي قابل توجهي براي کارهاي آينده در اين زمينه وجود دارد.

دسترسي:

به حداکثر رساندن دسترسي سيستم و بازيابي سريع از خرابي ، چالش هايي است که مختص IoT نيست بلکه براي هر سيستم توزيع شده اي است.

در زمينه IoT ، در دسترس بودن کارها و خدمات ارائه شده از اهميت برخوردار است.

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

ارائه خدمات بايد با به دست آوردن سرويس مورد نياز از دستگاه ديگري يکپارچه باشد.

امنيت و حريم خصوصي:

تمام نگراني هاي مربوط به امنيت ، حفظ حريم خصوصي و اعتماد به کليه فن آوري ها (e-g- ، اينترنت سنتي ، WSN ، ارتباطات M2M ، RFID ، SCADA و رايانش ابري) مورد استفاده در IoT به وضوح در زمينه IoT وجود دارد.

اما ، امنيت ، حفظ حريم خصوصي و اعتماد در اين فناوري ها کاملاً برطرف نشده است.

اکثر راه حلهاي امنيتي جزئي مبتني بر تأييد اعتبار موجود در واسطه هاي موجود براي تعدادي از برنامه هاي IoT کافي نيست.

تحقيقات براي يک راه حل امنيتي جامع که به سيستم و همچنين جنبه هاي امنيتي و سطح خصوصي در سطح مياني اهميت دهد ، ضروري است.

سهولت استقرار:

استقرار ، استقرار پس از کار و برنامه ريزي مجدد از وظايف مهم در چرخه حيات واسطه IoT هستند.

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

محبوبيت:

رشد يک جامعه آنلاين فعال در اطراف يک پروژه نرم افزاري کار سختي است.

اين پروژه نياز به ارائه يک مقدار مشخص (e-g- ، مواد ، فکري ، شناخت ، رقابتي) براي مشارکت کنندگان دارد.

به عنوان مثال ، Xively [99] پس از حادثه هسته اي در فوکوشيما ، هنگامي که افراد از اين سکو براي نظارت بر ميزان تشعشعات در سراسر کشور استفاده مي کردند ، رواج يافت.

در اين مقاله ، روش ارزيابي محبوبيت متکي به:

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

تعداد زيادي نقل قول (i-e- ، بيش از 50) و وجود يک منبع مخزن کد منبع يا يک وب سايت اختصاصي نشان دهنده يک واسطه بسيار پر کاربرد است.

تعداد اندکي (i-e- ، کمتر از 5) يا هيچ استناد ، بدون مخزن ، و هيچ وب سايت اختصاصي حاکي از يک واسطه کمتر محبوب نيست.

آثار ميان رده نسبتاً محبوب هستند.

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

ج- چالش هاي مرتبط با الزامات معماري:

انتزاع برنامه نويسي:

اکثر واسطه ها پشتيباني از انتزاع برنامه نويسي را ارائه مي دهند.

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

پشتيباني از اين نياز مي تواند بهبود يابد.

قابليت همکاري:

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

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

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

با اين حال ، پشتيباني از قابليت همکاري نحوي محدود است.

به عنوان مثال ، در رويکردهاي سرويس گرا ، فقط هيدرا [101] از اين نوع قابليت همکاري پشتيباني مي کند.

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

سرويس محور:

بسياري از واسطه ها مبتني بر خدمات هستند.

توضيحات خدمات براي اينکه در دستگاههاي محدودکننده منابع مناسب باشند ، بايد جامع و کارآمد باشند.

همچنين ، کشف و ترکيب خدمات بايد مستقل و سازگار با ديناميکي باشد.

انطباقي:

در تعدادي از رويکردها ، تصميم گيري در مورد سازگاري کاملاً رمزگذاري شده است و نياز به جبران مجدد و استفاده مجدد از سيستم يا بخشي از سيستم دارد.

در جايي که سازگاري پوياتر باشد ، از سياست ها ، قوانين يا تعريف QoS استفاده مي شود که مي تواند در زمان اجرا براي ايجاد رفتار جديد تغيير يابد.

حتي اگر بيشتر واسطه ها از يک رويکرد پويا استفاده مي کنند ، قوانين ، سياست ها و تعاريف QoS اکثراً داراي کد نويسي هستند و داراي متناقض نيستند.

در IoT ، اين رويکرد مقياس پذير نيست.

علاوه بر اين ، فقط واسطه هاي خاص برنامه به طور پويا مطابق با نيازهاي QoS سازگار مي شوند ، اما اين يک اتصال بين مؤلفه هاي ميان افزار را ارائه مي دهد.

تحقيقات لازم براي يک مدل سازگاري انعطاف پذير ، پويا و متناسب با متن است.

زمينه آگاهي و رفتار خود مختار:

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

به عنوان مثال ، MUSIC [70] از زمينه اي براي سازگاري با خود براي حفظ يک QoS رضايت بخش سوء استفاده مي کند.

کاربردهاي متداول در زمينه (e-g- ، کشف منابع آگاه از متن ، ترکيب آگاهي از متن و مديريت داده هاي آگاه از متن) [182] ، [183] ??در زمينه هاي ديگر وجود ندارد.

همچنين ، رويکرد چرخه چرخه حيات بايد استاندارد سازي شود.

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

اکثر وسايل واسطهاي موجود براي سيستم هايي با خصوصيات خود * (e-g- ، خود سازگار) از جمله ارتباطات M2M مناسب نيستند.

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

V- کار خلاصه و آينده:

Middleware براي سهولت در توسعه برنامه هاي متنوع و خدمات در IoT ضروري است.

پيشنهادهاي زيادي به اين مشکل معطوف شده است.

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

اين مقاله اين آثار را در چشم انداز قرار مي دهد و ديدگاه كلي از اين زمينه ارائه مي دهد.

در انجام اين کار ، ويژگي هاي اصلي IoT و الزامات ميان افزار IoT مشخص شده است.

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

سرانجام ، موضوعات تحقيق ، چالشها و جهتهاي پيشنهادي تحقيقاتي آينده تشريح شده است.

اين نظرسنجي ميانه هاي موجود را با توجه به رويکردهاي طراحي آنها طبقه بندي مي کند:

مبتني بر رويداد ، سرويس محور ، عامل محور ، تاپل فضا ، مبتني بر VM ، پايگاه داده محور و برنامه خاص.

هر دسته از پيشنهادات ميان افزار زيادي برخوردار است ، که بر اين اساس ارائه مي شوند.

بسياري از اين پيشنهادات مورد بررسي قرار گرفته و از نظر الزامات معماري کاربردي ، غير کاربردي و معماري مورد حمايت قرار گرفته است (جداول I-III).

خلاصه ها نشان مي دهد که هر ميان افزار دو يا چند مورد از ليست هاي ذکر شده را از هر نوع نياز پشتيباني مي کند (e-g- ، PRISMA بخشي از مديريت کد را از طريق تخصيص کد پشتيباني مي کند).

هيچکدام از الزامات ذکر شده را پشتيباني نمي کند.

جدول چهارم هر طبقه بندي ميان افزار را از نظر نيازهاي کاربردي ، غير کاربردي و معماري پشتيباني شده آنها خلاصه مي کند.

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

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

همچنين ، اين رويکردها مديريت منابع را از طريق ترکيب منابع پشتيباني مي کنند ، و بيشتر موارد اين ترکيبات را مي توان از پيش تعريف کرد ، خصوصاً در رويکردهاي مبتني بر VM.

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

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

از طرف ديگر ، وسايل مياني مبتني بر فضاهاي تاپل به دليل ويژگيهاي افزونگي داده ، توزيع شده و نسبتاً مطمئن تر از سايرين هستند.

مانند روشهاي مبتني بر عامل ، واسطه هاي مبتني بر فضاي مبتني بر تاپل با امنيت و حفظ حريم شخصي مشکل دارند.

رويکردهاي طراحي بانک اطلاعاتي در مديريت داده عملکرد خوبي دارند و به سرعت پاسخ مي دهند ، فرض مي کنيم که پاسخ هاي غير واقعي کافي هستند.

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

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

سرانجام ، واسطه هاي خاص برنامه براي يک برنامه يا گروه برنامه ها بهينه شده اند ، و ممکن است براي ساير برنامه ها مناسب و کارآمد نباشد.

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

در اين زمينه زمينه هاي قابل توجهي براي کارهاي آينده وجود دارد.