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

Internet of Things Middleware: سرویس گرا چقدر مناسب است معماری و معماری مبتنی بر منابع

Internet of Things Middleware: How Suitable are Service-oriented Architecture and Resource-oriented Architecture

Internet of Things Middleware: معماری سرویس گرا و معماری مبتنی بر منابع چقدر مناسب است.

خلاصه:

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

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

بسیاری از راه حل های میانی برای IoT بر پایه معماری سرویس گرا و معماری مبتنی بر منابع استوار است.

هر دو روش از اتصال اشیاء توزیع شده پشتیبانی می کنند ، اما هیچ تحقیق برای بررسی مناسب بودن SoA و RoA در زمینه الزامات IoT مشترک در یک دامنه مناسب انجام نشده است.

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

نتیجه این مقایسه ، هر دو روش به عنوان پایه واسطه IoT مناسب هستند.

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

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

1. مقدمه:

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

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

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

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

علاوه بر این ، تعامل انسانها با دستگاه های هوشمند با پیشرفت صدا ، ژست و شناخت عاطفی آسان تر می شود (فیلدینگ و تیلور ، 2000).

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

این برداشت تحت عنوان چتر اینترنت اشیا (IoT) خلاصه می شود.

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

بنابراین ، یک معماری مرجع نشان می دهد که بر اساس آن یک یا چند برنامه IoT مستقر است (Bandyopadhyay and Sen، 2011).

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

بنابراین ، هر شیء فیزیکی نیاز به یک نمایش دیجیتالی از خود دارد که می تواند توسط بارکد یا تراشه RFID تحقق یابد (Gazis و همکاران ، 2015).

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

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

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

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

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

این لایه نشان دهنده یک رابط کاربری برای برقراری ارتباط با enduser است (Bandyopadhyay and Sen، 2011).

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

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

به طور کلی ، معماری سرویس گرا (SoA) یا معماری با محوریت منابع (RoA) استفاده می شود (Gazis et al، 2015؛ Guinard et al، 2012).

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

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

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

بنابراین ، این مقاله نشان می دهد که آیا SOA ، RoA یا هر دو رویکرد برای IoT قابل قبول هستند یا خیر.

در فصل بعد مفهوم SoA و RoA به اختصار توضیح داده شده است.

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

فصل چهارم الزامات اساسی IoT را ذکر می کند و ویژگی های SoA و RoA آنها را برآورده می کند.

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

در پایان ، چشم انداز کوتاهی برای کارهای آینده ارائه می شود.

2-تعریف SOA و RoA:

بنابراین SOA و RoA در واقع ایجاد نشده اند تا در زمینه IoT مورد استفاده قرار گیرند (Gazis et al، 2015؛ Guinard et al، 2012).

با این حال ، هر دو معماری با هدف افزایش قابلیت همکاری اشیاء ناهمگن و توزیع شده مشترک دارند (گینارد و همکاران ، 2011).

اگرچه SoA و RoA یک هدف مشترک دارند ، هر دو طرح معماری مبتنی بر یک مفهوم ریشه ای متفاوت هستند.

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

2-1 معماری سرویس گرا (SoA):

SOA مبتنی بر ایده اصلی تقسیم سیستمهای پیچیده به اجزای کوچک به نام خدمات است (Bandyopadhyay and Sen، 2011).

این خدمات SoA به عنوان یک واحد منطقی ، خودمحور ، مستقل و قابل استفاده مجدد از وظایف تعریف شده اند (Bean، 2009؛ Laskey and Laskey، 2009؛ Schmidt et al، 2005؛ Spiess و همکاران ، 2009) و معمولاً از فرایندهای تجاری خلاصه می شوند ( لسکی و لسکی ، 2009).

از نظر کاربر ، یک سرویس جعبه سیاه است که پارامترهای ورودی را دریافت می کند و یک خروجی خاص را بازمی گرداند (Laskey and Laskey، 2009؛ Spiess et al، 2009).

برنامه های کاربردی می توانند به رابط سرویس دسترسی پیدا کنند و یک یا چند سرویس را برای انجام وظیفه خود انجام دهند.

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

با توجه به آن ، دو سرویس با تبادل پیام ها ارتباط برقرار می کنند (Bean، 2009).

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

Registry Service فراداده کلیه خدمات منتشر شده را کنترل می کند.

این موارد را می توان به عنوان UDDI ، WSDL یا سایر قالب ها واریز کرد (Wan et al، 2006).

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

علاوه بر این ، توزیع شبکه SoA را امکان پذیر می کند (Bean، 2009).

بنابراین ، یک سرویس می تواند با جستجو در رجیستری سرویس ، خدمات دیگری را نیز بطور خودکار پیدا کند.

SoA بر اساس میزان آزادی بالا با انتخاب حمل و نقل (مانند HTTP و FTP) و پروتکل های ارتباطی (مانند SOAP و XML) که رابط یک سرویس را ایجاد می کند (Laskey and Laskey، 2009؛ Schmidt et al، 2005؛ Wan et al. ، 2006).

در زمینه سرویس های وب SoA یک فناوری متداول از مشخصات WS - * استفاده می کند (Gazis و همکاران ، 2015).

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

برای پذیرش این مشکل ، می توان یک اتوبوس خدمات سازمانی (ESB) ایجاد کرد.

ESB تمام سازوکارهای SOA را در یک مؤلفه متحد می کند (اشمیت و همکاران ، 2005).

SoA با استفاده از ESB به عنوان مؤلفه اصلی که به کلیه پیام های شبکه خدمات دست پیدا می کند ، نشان داده شده است (Bean، 2009).

2-2 معماری مبتنی بر منابع (RoA):

اصطلاح RoA در سال 2007 تأسیس شده است (ریچاردسون و روبی ، 2008).

این یک سبک معماری نرم افزاری را توصیف می کند که مبتنی بر الگوی انتقال دولت نمایندگی (REST) ​​است که در (فیلدینگ و تیلور ، 2000) و پروتکل انتقال HTTP تعریف شده است.

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

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

رابط هر منبع محدود به روشهای PUT ، GET ، POST و DELETE است.

روش POST منبعی را به URI استفاده شده اختصاص می دهد (گینارد و همکاران ، 2011).

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

پس از آن از روش GET برای خواندن داده های تهیه شده توسط منبع استفاده می شود.

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

رایج ترین بازنمایی ها XML ، JSON و HTML است (گینارد و همکاران ، 2011 ؛ ریچاردسون و روبی ، 2008).

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

در این حالت ، نمونه فراخوان می تواند انتخاب کند که کدام نمایندگی برای پرونده مورد استفاده مناسب (نفی محتوا) مناسب باشد (گینارد و همکاران ، 2011).

روش دیگر ارائه شده توسط HTTP عبارت PUT است.

از آن برای به روزرسانی داده های ارائه شده توسط منبع استفاده می شود (گینارد و همکاران ، 2011).

آخرین روش استاندارد پشتیبانی از HTTP ، DELETE است و برای حذف URI با حذف منبع اختصاص داده شده ، لازم است.

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

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

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

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

این ویژگی به عنوان بی تابعیت نامگذاری شده است (فیلدینگ و تیلور ، 2000 ؛ ریچاردسون و روبی ، 2008).

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

منابع با یکدیگر ارتباط برقرار می كنند و به منظور ایجاد یك ناوبری از طریق آنها ارتباط دارند (فیلدینگ و تیلور ، 2000 ؛ ریچاردسون و روبی ، 2008).

3- آثار مرتبط:

برخی از تحقیقات قبلاً سعی در نشان دادن مناسب بودن RoA و SoA به عنوان واسطه IoT دارند.

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

در نتیجه ، هیچ یک از مقالات موجود ، تناسب ویژگیهای اساسی SoA و RoA را با الزامات IoT مشترک در یک دامنه مناسب ، تجزیه و تحلیل نمی کند.

معماری Web of Things (WoT) با استفاده از مفهوم RoA به عنوان واسطه ارائه شده است (گینارد و همکاران ، 2011).

به عنوان دلیلی برای استفاده از RoA به جای SoA Guinard و همکاران ذکر کردند که SoA اغلب برای زمینه IoT بسیار سنگین و پیچیده است.

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

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

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

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

مقایسه ای بین استفاده از RoA و SoA به عنوان واسطه IoT در رابطه با دیدگاه توسعه دهندگان ارائه شده است.

نتیجه مطالعه این است که مفهوم RoA "برای یادگیری آسان تر ، شهودی تر و مناسب تر برای برنامه نویسی برنامه های IoT است" از SoA (گینارد و همکاران ، 2012).

در غیر این صورت ، نویسندگان ذکر می کنند که تثبیت RoA به HTTP اجازه استفاده از مکانیسم های امنیتی مختلف را نمی دهد.

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

با این وجود ، آنها این سؤال را مطرح می کنند که آیا سازوکارهای امنیتی عظیم مانند آنچه که توسط WS- ارائه شده اند ضروری هستند یا خیر.

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

در (Spiess و همکاران ، 2009) ، نتیجه مشابهی نتیجه می گیرد.

نویسندگان یک واسطه SoA ایجاد می کنند تا فرایندهای تجاری را با IoT تطبیق دهد.

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

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

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

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

با این وجود ، آنها تصمیم گرفتند بدون استفاده از RoA از وسایل ارتباطی مبتنی بر SoA استفاده کنند (Spiess و همکاران ، 2009).

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

مقایسه راه حل های مختلف میان افزار IoT در (Chaqfeh and Mohamed، 2012) ارائه شده است.

در آغاز ، نویسندگان الزامات رایج IoT و همچنین راه حل های میان افزار IoT شناخته شده مانند SoA و RoA را نام می برند.

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

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

در مقابل ، RoA از عدم امنیت و ارائه رابط های كافی برخوردار است.

متأسفانه ، نویسندگان نتیجه گیری خود را توجیه نمی کنند و مکانیسم های نامگذاری SoA و RoA را که الزامات نام را پوشش می دهد ، ندارند.

4-الزامات IoT در مقایسه با SOA و RoA:

در ادامه ، جنبه های اساسی SoA و RoA با الزامات مشترک IoT مقایسه می شود.

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

پس از آن سازوکارهای SoA و RoA که متناسب با نیاز است نامگذاری و رتبه بندی می شوند.

جدول 1 نتایج مقایسه انجام شده را نشان می دهد.

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

این موارد در مقالات مختلف دانشگاهی مانند (Bandyopadhyay and Sen، 2011؛ ​​Bonomi et al، 2014؛ Guinard et al، 2011؛ ​​Haller et al، 2009؛ Kolozali et al، 2014؛ Pang et al، 2015) شناسایی شده اند.

الزامات مورد بررسی ، اتصال ، سازگاری ، مقیاس پذیری ، استحکام و امنیت است.

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

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

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

نماد "+" نشان می دهد که ویژگی های RoA یا SoA برای تحقق این نیاز مناسب هستند.

جدول 1- الزامات IoT و تحقق آنها توسط SOA و RoA.

4-1 اتصال:

اصطلاح اتصال همه خصوصیات واسطه IoT را به وجود می آورد تا یک شبکه همگن را از یک توده ناهمگن از چیزها تشکیل دهد (Bandyopadhyay and Sen، 2011؛ ​​Bonomi et al، 2014).

این یک ویژگی اساسی IoT است که همه چیز توانایی برقراری ارتباط با یکدیگر را بدون نیاز به تعامل انسانی دارد (Bandyopadhyay and Sen، 2011؛ ​​Haller et al، 2009).

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

برای فعال کردن یک ارتباط ، امور باید دارای آدرس باشند (هالر و همکاران ، 2009).

علاوه بر این ، اتصال بین چیزها باید سست باشد به این معنی که چیزها از نظر مدولار و مستقل از یکدیگر و کانال ارتباطی چیزهای دیگر (Bandyopadhyay and Sen، 2011).

بخش دیگر اتصال ، اتصال به خود چیزهایی است که به مکانیسم کشف شبکه پیوند می خورد (گوبی و همکاران ، 2013 ؛ سانتماکر و همکاران ، 2010).

امکان اتصال به طور مستقل از چیزهای جدید به دلیل این واقعیت ضروری است که IoT یک شبکه پویا است که اجازه می دهد تا چیزها بتوانند به وسط واسطه دیگری متصل شوند (Sundmaeker et al، 2010).

آخرین شرط اتصال اتصال ، ارتباط دو طرفه است (Bandyopadhyay and Sen، 2011؛ ​​Haller et al، 2009؛ Spiess et al، 2009).

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

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

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

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

این خدمات صرف نظر از فن آوری های اساسی خود با استفاده از رابط سرویس خود همکاری می کنند (Bean، 2009؛ Haller et al، 2009؛ Spiess et al، 2009).

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

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

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

از طرف دیگر ، یک مترجم باید به عنوان واسطه تاسیس شود (Bean، 2009).

علاوه بر تلاش برای اجرای اولیه و نگهداری مداوم (Bean، 2009) ، واسطه با ایجاد وابستگی به مترجم ، ضرورت اتصال سست را ضرر می کند (اشمیت و همکاران ، 2005).

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

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

با این وجود ، ذکر شده است که ثبت نام خدمات به دلیل محدودیت توان محاسباتی و حافظه دیتا می تواند برای اشیاء IoT بسیار پیچیده باشد (گینارد و همکاران ، 2012).

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

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

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

علاوه بر این ، SoA به مدیر ارباب رجوع محدود نمی شود که به موجب آن فشار دادن داده ها مانند آنچه برای انجام رویدادها لازم است امکان پذیر باشد (Spiess و همکاران ، 2009).

مانند SOA ، رویکرد RoA می تواند به عنوان واسطه IoT مورد استفاده قرار گیرد.

بنابراین ، همه چیزها ، بخشی از چیزها یا ارتباطات چیزها به عنوان منبع تعبیر می شوند.

این افراد با ارائه یک رابط منحصر به فرد و پنهان کردن اجرای بنیادی خود ، موارد را محاصره می کنند.

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

رسیدگی به پروتکل های مختلف پیام مانند JSON و XML با استفاده از مذاکره محتوا یا استفاده از منابع مختلف برای هر شیوه ارائه محتوا در RoA اداره می شود (ریچاردسون و روبی ، 2008).

در نتیجه قابلیت تعامل در داخل یک شبکه RoA داده می شود.

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

برخلاف SOA ، RoA برای کشف منابع به ساختاری مانند ثبت خدمات احتیاج ندارد.

بنابراین ، همه چیزهای RESTful را می توان در صورت یافتن از طریق ریزگردها یا موارد مشابه ، آسان یافت (Gubbi et al، 2013؛ Guinard et al، 2011).

از یک طرف ، استفاده از HTTP اطمینان می دهد که چیزهای جدید نیز بلافاصله در شبکه RoA ادغام می شوند.

از طرف دیگر ، موارد غیر RESTful برای تبدیل شدن به بخشی از شبکه RoA ، نیاز به یک رابط RESTful یا پروکسی دارند (گینارد و همکاران ، 2011 ؛ ریچاردسون و روبی ، 2008).

نیاز به ارتباط دو طرفه برخلاف ویژگی RoA است که داده ها فقط می توانند بکشند (اصلی مشتری-سرور).

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

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

4-2 سازگاری:

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

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

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

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

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

بنابراین ، استفاده از یک واسطه برای ترجمه پروتکل های مختلف حمل و نقل و پیام رسانی برای اطمینان از ارتباط درون شبکه و بین شبکه های مختلف ضروری است (Bandyopadhyay and Sen، 2011).

استفاده از ESB برای این کار ترجمه در (Schmidt et al، 2005) پیشنهاد شده است.

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

علاوه بر پیام های ترجمه ، ESB همچنین می تواند پیام را در صف قرار دهد و پیام های همزمان و همزمان را نیز فراهم می کند.

با این وجود ، تلاش برای پیاده سازی ESB به ترتیب گسترش ESB باید در نظر گرفته شود.

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

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

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

RoA از ارتباط تنگاتنگ خود با REST و HTTP بهره می برد.

بنابراین ، اتصال به دیگر شبکه های مستقر در RoA بطور خودکار و بدون هیچ گونه تلاش اضافی برقرار می شود.

در مقابل ، چیزهایی که از شبکه غیر RoA مستقر هستند باید توسط یک رابط RESTful پوشانده شوند که می تواند منجر به تلاش زیاد شود.

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

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

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

دلیل این امر این است که پروتکل HTTP به طور پیش فرض به طور پیش فرض سازگار است (ریچاردسون و روبی ، 2008).

علاوه بر این ، تمام نسخه های HTTP از روش های PUT ، GET ، POST و DELETE پشتیبانی می کنند.

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

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

مقیاس پذیری 4-3:

الگوی IoT یک محیط پویا و در حال تحول را فرض می کند.

بنابراین ، تعداد موارد متصل به یک واسطه میانی و همچنین تعداد برنامه های مبتنی بر این واسطه می تواند متفاوت باشد (Bandyopadhyay and Sen، 2011؛ ​​Kruger and Hancke، 2014).

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

این ویژگی به مقیاس پذیری گفته می شود.

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

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

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

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

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

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

با استفاده از محاسبات ابری می توان هر دو شرایط را با تأمین انرژی پردازش و ذخیره انعطاف پذیر مدیریت کرد (Bonomi et al، 2014).

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

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

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

بنابراین ، SoA از مکانیسم های مختلفی برای کاهش بار کارها پشتیبانی می کند.

یک جنبه سرویس کارگزار است که اگر یک سرویس مشغول باشد می تواند پیام هایی را به سرویس های مشابه توزیع کند (اشمیت و همکاران ، 2005 ؛ Spiess و همکاران ، 2009).

جنبه دیگر امکان صف درخواستها به گونه ای است که می توان آنها را یکی پس از دیگری بدون بارگذاری بیش از حد مورد بررسی قرار داد (Du et al، 2011؛ ​​Garces-Erice، 2009).

در نتیجه ، تعداد زیادی درخواست می تواند منجر به تأخیر زیاد شود.

جنبه دیگری که در تأخیر تأثیر دارد ، ترجمه هر درخواست توسط ESB است (Du et al، 2011).

بنابراین ، همچنین دست زدن به داده های زمان واقعی تحت تأثیر قرار می گیرد.

برای حل این مشکل ، استفاده از مکانیسم تضمین بلادرنگ در ESB در (Du et al، 2011) پیشنهاد شده است.

این مکانیزم وظیفه دارد اولویت بندی همه پیام ها و مهلت دادن به آنها را تعیین کند.

یک رویکرد مشابه برنامه زمانبندی رویداد (Garces-Erice، 2009).

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

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

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

مشابه SoA ، تنگنای ارتباطی RoA قدرت پردازش کم چیزهاست.

در نتیجه ، چندین تماس از یک منبع به طور هم زمان باید توسط خود منبع انجام شود (ریچاردسون و روبی ، 2008).

بی تابعیت یک منبع تضمین می کند که دسترسی یک منبع به سایر دسترسیهای هم زمان تأثیر نمی گذارد (ریچاردسون و روبی ، 2008).

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

علاوه بر این ، RoA یک حافظه پنهانی سمت مشتری را فراهم می کند که امکان تنظیم بافر داده های ذخیره شده را فراهم می کند (گینارد و همکاران ، 2011).

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

مفهوم سیستم لایه بندی شده به دلیل واسطه ای که توسط منبع مجذوب شده است باعث تأخیر بیشتر می شود (گینارد و همکاران ، 2011).

در مقابل ، امکان ذخیره داده ها و هدایت درخواست ها به منابع فرعی می تواند تأخیر را با رسیدگی سریعتر به درخواست کاهش دهد (گینارد و همکاران ، 2011 ؛ ریچاردسون و روبی ، 2008).

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

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

بنابراین ، استفاده از قلاب وب برای پیاده سازی رویدادها و AtomPub برای اجرای جریان داده در واسطه RoA پیشنهاد می شود (گینارد و همکاران ، 2011).

4-4 استحکام:

استحکام یک شبکه توانایی آن در رسیدگی به دسترسی به چیزها را توصیف می کند (هالر و همکاران ، 2009 ؛ کلوزالی و همکاران ، 2014).

وجه دیگر استحکام ، اعتبار داده های اندازه گیری و پشتیبانی شده است (Kolozali و همکاران ، 2014).

یک واسطه مبتنی بر SOA می تواند با استفاده از یک مانیتور وضعیت ، خدمات خود را از کار بیندازد (Du et al، 2011).

هر سرویس غالباً پیامی (ضربان قلب) را به این مانیتور ارسال می کند تا نشان دهد هنوز کار می کند.

همراه با ESB ، عدم موفقیت یک سرویس با جستجوی سرویس جایگزین با کارکردهای برابر قابل تنظیم است (هالر و همکاران ، 2009).

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

یک نقطه ضعف این فرآیند این است که تأخیر افزایش می یابد و همچنین بار کاری ESB افزایش می یابد.

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

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

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

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

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

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

با گسترش یک نرم افزار mashup با استفاده از خطای مستقل می توان از این شرایط جلوگیری کرد (گینارد و همکاران ، 2011).

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

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

4-5 امنیتی:

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

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

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

بنابراین ، جنبه های امنیتی مختلف و حملات معمولی که باید هنگام ایجاد واسطه IoT ذکر شوند ، مورد تجزیه و تحلیل قرار می گیرند (فاروک و همکاران ، 2015 ؛ ریاحی و همکاران ، 2013 ؛ گو و همکاران ، 2013).

لازم به ذکر است که در صورت تأمین امنیت کلیه لایه های ساختار IoT ، یک سطح امنیتی مؤثر قابل دستیابی است.

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

WS-Security استاندارد در ترکیب با SOAP پیشنهاد می شود و با استفاده از نشانه های امنیتی فرآیند احراز هویت برقرار می شود (Tiburski و همکاران ، 2015).

علاوه بر این ، رمزگذاری XML ، حریم شخصی داده ها و بخشهایی را که حملات در وسط انجام می دهد ، تضمین می کند (Tiburski و همکاران ، 2015 ؛ فاروک و همکاران ، 2015).

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

بنابراین ، هافنر و همكاران (هافنر و همكاران ، 2009) یك طرح برای امنیت به عنوان یك سرویس (SeAAS) ایجاد كردند.

همانطور که قبلاً نیز گفته شد ، RoA مبتنی بر HTTP و REST است.

بنابراین ، HTTP Basic ، HTTP Digest یا WS-Security Extension پیشنهاد می شوند که برای احراز هویت استفاده کنند (ریچاردسون و روبی ، 2008).

با این حال ، هر دو روش پس انداز نمی شوند (لی و همکاران ، 2015).

HTTP Basic می تواند قربانی حمله مجدد و تزریق شود در حالی که HTTP Digest در مورد حملات وسط پس انداز نیست.

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

علاوه بر این ، API های موجود در شبکه های اجتماعی می تواند به عنوان یک پروکسی برای تأیید اعتبار کاربران و مدیریت دسترسی آنها به منابع مورد استفاده قرار گیرد (گینارد و همکاران ، 2011).

جنبه حریم خصوصی را می توان با استفاده از HTTPS به جای HTTP انجام داد که داده های منتقل شده را رمزگذاری می کند (ریچاردسون و روبی ، 2008 ؛ کلارک و ون اورشوت ، 2013).

5- بحث و نتیجه گیری:

تجزیه و تحلیل انجام شده از SOA و RoA نشان می دهد که هر دو روش تمام الزامات مطرح شده توسط IoT را کاملاً برآورده نمی کند.

جدول 1 نشان می دهد که SoA حداقل از راه ابتدایی از کلیه الزامات پشتیبانی می کند.

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

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

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

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

با این وجود ، SoA نمی تواند به عنوان واسطه IoT بدون ارائه ESB یا یک واسطه مشابه مورد استفاده قرار گیرد.

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

با توجه به جدول 1 ، RoA از کلیه الزامات IoT پشتیبانی نمی کند.

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

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

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

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

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

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

در کل ، SoA و RoA می توانند برای ساخت واسطه IoT مناسب باشند.

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

تجزیه و تحلیل SoA و RoA در مورد الزامات مختلف IoT می تواند زمینه ساز این تصمیم باشد.

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

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

علاوه بر این ، فقدان مکانیسم های امنیتی RoA ذکر شده در (گینارد و همکاران ، 2012 ؛ چقفه و محمد ، 2012) قابل اثبات است.

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

همچنین ممکن است مطابقت با هر دو روش برای ارائه از وزن سبک RoA و انعطاف پذیری SOA داشته باشد.

تحقیقات آینده می توانند یک معماری ترکیبی از SoA و RoA را بر اساس الزامات و مکانیسم های مورد بررسی IoT مورد بررسی قرار دهند.

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

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

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