چکیده
محیط موبایلی اخیرا انواع گوناگونی از اشیای هوشمند را در خود دارد که به صورت فرصت طلبانهای به محیط پیرامون تلفنهای همراه نزدیک میشوند. بیشتر اپلیکیشنهای موجود در بازار تنها به مدل خاصی که تولید کننده در فاز توسعه انتخاب کرده است محدود میشوند، لذا آنها با اشیای ناهمگن حتی اگر عملکردهای مشابهی داشته باشند، سازگار نیستند. برای بهینه سازی اشیای هوشمندی که در پیرامون هر کاربر هستند، اپلیکیشن مشاپ IoT نیاز است تا به صورت پویا اشیای ناهمگون را کشف کند، ماژول نرم افزاری مورد نیاز را در زمان اجرا دانلود کند، و اپلیکیشن مشاپ را به کاربر ارائه دهد. در این مقاله، پلت فرم اپلیکیشن مشاپ IoT را که از کشف تلفنهای هوشمند، شناسایی، نصب و راه اندازی، مشاپ و ترکیب اشیای هوشمند پشتیبانی میکند را طراحی و اجرا کردیم. علاوه بر این، با جدا کردن نقش اکتورها در اکوسیستم IoT که از اینترفیس اشیای انتزاعی کاربردی استفاده میکنند، پلت فرم مزایایی را برای هر اکتور فراهم میکند مانند اینکه- تولیدکنندگان اشیا میتوانند قابلیت محصولات خود را به حداکثر برسانند، توسعه دهندگان اپلیکیشن میتوانند بر منطق تجاری خود متمرکز باشند، و کاربران نهایی میتوانند انتخاب کنند که کدام اشیای هوشمند برای ترکیب استفاده شوند.
مقدمه
امروزه، انواع بیشماری از دستگاههای هوشمند به اکوسیستم IoT وارد شده اند، و برخی از آنها حتی به بخشهای جدایی ناپذیر زندگی روزانه ما تبدیل شدهاند. تحت این شرایط، اگر تعامل منعطف بین این اشیای هوشمند و دستگاه موبایل شخصی امکان پذیر شود، این اشیای هوشمند میتوانند تجربه بهتر و خدمات جدیدی را در مقایسه با اپلیکیشنهای موجودی که تنها با دستگاههای خاص در تعامل هستند؛ ارائه دهند. برای مثال، میتوانیم سرویس سادهای را تصور کنیم که دمای بدن انسان و ضربان قلب انسان را با حسگرهای متصل شده به بدن اندازه میگیرد، و با کنترل روشنایی و رنگ لامپ هوشمند، دمای بدن را اعلام میکند. در محیط توسعه معمولی موبایل، اپلیکیشنهایی که این خدمات را ارائه میدهند معمولا به مدل خاصی از اشیا محدود میشوند که توسط توسعه دهنده در زمان اجرا انتخاب شدهاند.
در این مقاله، IoT-MAP، یک پلت فرم اپلیکیشن موبایل که به قابلیت همگام سازی منعطف بین دستگاههای موبایل و اشیای هوشمند پیرامون آن کمک میکند را توضیح میدهیم –این اپلیکیشن توسعه یافته بر اساس کتابخانه پلت فرم را، IoT-App نامگذاری میکنیم.پلت فرم IoT-MAP بهبودهای گوناگونی برای اکتورها در اکوسیستم IoT حاضر فراهم کرده است که در شکل 1 نشان داده شده است. برای توسعه دهندگان اپلیکیشن موبایل، IoT-MAP مجموعهای از APIهایی با درک مستقیم را برای ساخت آسان IoT-App ارائه داده است، مانند کشف شی، ارتباط و بازیابی شی خدماتی انتزاعی که در صورتی که شی حقیقی باشد؛ میتواند مستقیما استفاده شود. با موارد پشتیبانی شده در پلت فرم IoT-MAP، آنها میتوانند منطق تجاری خود را در سبک POJO (شی ساده جاوا ) بدون در نظر گرفتن ارتباط حقیقی و اجرای اشیای هوشمند بنویسند. تولیدکنندگان اشیا میتوانند با داشتن یک سرور نام مبتنی بر ONS و مجموعهای از درایورها، مانع از بوجود آمدن تعارضات مربوط به ID پلت فرم شوند. به دلیل اینکه ONS بر اساس تکنولوژی DNS طراحی شده است، سرور نام تولید کننده میتواند در دیگر سرورهای ONS توزیع شده ادغام شود، بنابراین کاربران نهایی میتوانند مجموعه نرم افزار درایور اشیای خود را که مستقیما توسط تولید کننده ارائه شده است، بدون هیچ دانشی از اشیا (مانند نام تولید کننده، نام شی، شماره سریال و غیره) پیدا کنند. و سرانجام کاربران نهایی، میتوانند انتخاب کنند که کدام شی با استفاده از اشیای کشف شده در زمان اجرا، میتواند در ارائه خدمات مطلوب مشارکت داشته باشد. علاوه بر این، در مواردی که هیچ IoT-App با پیش نیاز کاربر در بازار منطبق نیست، کاربران نهایی میتوانند از ابزار تالیفی GUI ارائه شده توسط پلت فرم IoT-MAP استفاده کنند. کاربران میتوانند با استفاده از اشیای کشف شده و ماژولهای منطقی؛ اپلیکیشنی را بوجود آورند که هر شی را سازگار و قابل تعامل میسازد، سپس این ماژولها به صورت پویا دانلود میشوند و اپلیکیشن مورد نظر کاربر را تشکیل میدهند.
ملاحظات طراحی
امروزه دستگاههای IoT زیادی به بازارها وارد شده اند، اما قابلیت آنها به دلیل اینکه با یک اپلیکیشن موبایل تجهیز شده اند که اختصاصی تنها برای آن دستگاه طراحی شده است، محدودیتهایی دارد. برای مثال، لامپهای هوشمند مانند Philips Hue (http://meethue.com) اپلیکیشن موبایلی را برای برای روشن /خاموش کردن یا تغییر رنگها ارائه داده است. کاربران نهایی نمیتوانند استفاده از لامپهای هوشمند را منطبق با اپلیکیشن، حسگرها یا تعاملات خود سفارشی سازی کنند.
پلت فرم اپلیکیشن مشاپ IoT
ما معماری IoT-MAP را طراحی کردیم که بر سیستم عامل موبایل کار میکند و میتواند برای توسعه دهندگان و کاربران استفاده شود. توسعه دهندگان میتوانند اپلیکیشنی را ایجاد کنند که با اشیای هوشمند گوناگون با استفاده از IoT-App API در تعامل هستند، و اگر شما قابلیتهای انتزاعی IoT-MAP اشیای هوشمند ناهمگن گوناگونی را در حول تلفن هوشمند کاربر در اختیار داشته باشید، میتوانید از توابع اشیا به روش یکنواختی استفاده کنید. برای کاربران، آنها میتوانند به سادگی از IoT-Appاجرا شده توسط توسعه دهندگان با انتخاب اشیای خاص کشف شده توسط پلت فرم در زمان اجرا استفاده کنند یا میتوانند IoT-Appرا در زمان اجرا با استفاده از UI ترکیبی (ابزار GUI برای کاربر) تالیف کنند. IoT-App میتواند با اشیای گوناگون بدون پیوند استاتیک با فروشنده خاص در زمان اجرا در ارتباط باشد، که به عنوان اپلیکیشن معمولی تنها میتواند با اشیای محدودی در زمان اجرا در ارتباط باشد.
معماری سیستم پلت فرم IoT-MAP
پلت فرم انتزاعی از قابلیتهای پایه OS دستگاه است (مانند ارتباطات، شبکه، و غیره) لذا IoT-Appsمیتواند از آنها استفاده کند. شکل 2 دیاگرام کاملی از پشته پلت فرم است. بخش زیرین پلت فرم، " ارائه دهنده اتصال[1]" پروتکلها و ارتباطات گوناگونی را ارائه میدهد که برای کشف و برقراری ارتباط با اشیای هوشمند پیرامون استفاده میشود. و "لایه انتزاعی شکل[2]" مسئول کشف؛ شناسایی، مدیریت شی مجازی، و مدیریت مجموعه نرم افزار، و ترکیب حقیقی از خدمات اشیای هوشمند و منطق تجاری است. "لایه ترکیبی[3]" از عملکردهایی برای اپلیکیشنهای چندمنظوره[4]پشتیبانی میکند. این لایه ترکیباتی از سرویس با اطلاعات تجزیه شدهای که توسط کاربر در زمان اجرا با ابزار تالیف تعریف شده است و مجموعه نرم افزار مرجع از لایه انتزاعی برای بازیابی شی، را در خود دارد. و در آخر، یک IoT-APP API وجود دارد، که واسطهای استانداردهای را برای گروه اشیای هوشمند (لامپ ها، حسگرها، دوربینها و غیره) ارائه میدهد و همچنین API را برای توابع گوناگونی مانند کشف اشیا، بازیابی اشیای مجازی و غیره ارائه میدهد.
اسکنر دستگاه
اسکنر دستگاه، دستگاههای موجود در اطراف تلفن هوشمند را با استفاده از متدهای کشف ارائه دهنده ارتباط (SSDP برای UPnP) اسکن میکند. برای پشتیبانی از قابلیتهای اسکن بر پروتکلهای و اتصالات ناهمگن، هریک از آنها در الگوی استراتژی اجرا میشوند که چند الگوریتم را تعریف میکنند، که هر یک از آنها پوشش داده میشوند، و آنها با رابط یکنواخت DeviceScanner قابل تعویض هستند. هر دستگاه اسکن شده با شی ScannedDeviceتشریح میشود که شامل اتصال، پروتکل، شناسه دستگاه، نام، و نقطه نهایی است.
استقرار و شناسایی پویای اشیای هوشمند
برای یکپارچه سازی دستگاههای ناهمگن به روش یکنواخت، پلت فرم IoT-MAP مکانیزم استقرار و شناسایی واقعی را که از استاندارد EPCglobal [1] استفاده میکند را ارائه میدهد.
سرویس نام شی و EPCglobal
EPCglobal مجموعه از استانداردها برای مدیریت زنجیره تامین است، که توسط سازمان استانداردسازی بین المللی GSI منتشر و حفظ و نگهداری میشود. این روشهایی را برای ردیابی و شناسایی هر محصول در کل فاکتورهای زنجیره تامین از جمله تولید، توزیع و مصرف ارائه میدهد. هسته این استاندارد کد منحصر EPC (کد محصول الکترونیک)است که به هر محصول نسبت داده میشود و آن کد محصول واقعی و داده محصول مجازی را به یکدیگر ربط میدهد. در میان استانداردهای EPCglobal، پلت فرم IoT-MAP از سرویس نام شی [2]استفاده کرده است، که به ذی نفعان تجاری کمک میکند تا اطلاعات محصول را از سرور تولیدکننده بازیابی کنند. ONS بر اساس سرویس نام دامنه (DNS) اجرا شده است، لذا میتواند اطلاعات را در سرورهای توزیع شده گسترده که توسط تولیدکنندگان به صورت موثری نگهداری میشود، پیدا کند.
اجرا
ما نمونهای از پلت فرم IoT-MAP را در اندروید اجرا کردیم. پلت فرم به عنوان یک سرویس در اندروید اجرا میشود. پلت فرم IoT-MAP برای اجرای هر سیستم عاملی که از HJVM یا موتور سازگار (مانند Dalvik) پشتیبانی میکند، طراحی شده است، و ما این پلت فرم را در اندروید برای اعتبارسنجی قابلیتهای آن اجرا میکنیم.
پل زدن فریم ورک OSGi و Android Dalvik VM
اینترفیسها یا رابطها، انتزاعی از توابع یا قابلیتهای گوناگون اشیای هوشمند هستند که به عنوان پلی بین فریم ورک OSGi و اپلیکیشن اندروید استفاده میشود. زمانی که توسعه دهنده از شی سرویس درخواست فریم ورک OSGi تعبیه شده را دارد، شی جاوا را باز میگرداند. اما محیط اجرایی فریم ورک OSGiو Android Dalvik VMبا classloaderمتفاوتی ایزوله شده است، لذا زمانی که توسعه دهنده سعی میکند که شی را به مورد دیگری تبدیل کند حتی اگر اینترفیس مشابهی برای تبدیل استفاده شود، ClassCastException فراخوانی میشود.
ارزیابی و نسخه نمایشی اپلیکیشن
سناریوی تماس با Bendi
این سناریو ادغام اشیای هوشمند متعدد و منطق تجاری توسعه دهنده اپلیکیشن را نشان میدهد. همانطور که در شکل 7c نشان داده شد، Philips Hue و دستگاه تعامل لمسی Bendi [14] در یک تلفن هوشمند برای ارائه خدمات تماس ارتباطی تعاملی ترکیبی ادغام شدهاند. برای تشریح این سناریو، یک اپلیکیشن تماس VoIP ساده را به عنوان یک IoT-Appتوسعه دادیم. این اپلیکیشن کاربران را قادر میکند که با یکدیگر تماس برقرار کنند، و همچنین تعاملی را از طریق صدا فراهم میکنند. همانطور که در شکل 7 نشان داده شده است، هر یک از سرویسهای کشف دستگاه، استقرار، یکپارچه سازی توسط Hue and Bendi ارائه شده است؛ و سپس ورودی خود را بر سرویس VoIP SMS ارسال کند. این یک تابع اضافی با یک کد مختصر است، چرا که همه جزییات اجرایی برای کشف؛ ارتباط و کنترل به پلت فرم واگذار میشود.
کارهای مربوطه
ترکیب اطلاعات موجود و خدمات از منابع متعدد برای ایجاد یک سرویس جدید در حال حاضر در تکنولوژی شبکه سراسری وب تحت نام Web Mashupشهرت یافته است. تلاش برای استفاده از این مفهوم در اشیای هوشمند مطالعات نتیجه شدهای مانند مشاپ در وب اشیا [1] [4]یا دستگاههای ناهمگون گوناگون است. همچنین، بسیاری از مطالعات علمی (e.g. Cilia[7] or Dynamo[8]) و پروژههای متن باز (e.g. Eclipse IoT[10] or OpenHAB[9])بر اینکه چگونه خدمات اشیای هوشمند را ترکیب کنند و ارزش جدیدی را به کاربران ارائه دهند کار کردند. به هر حال، بیشتر این مطالعات و پروژهها معمولا وجود یک سرور اصلی یا عامل دروازهای را برای مدیریت دستگاههای اصلی فرض میکنند.
نتیجه گیری
در این مقاله، یک پلت فرم ترکیبی از سرویس اشیای هوشمند تلفن هوشمند محور IoT-MAP را معرفی کردیم که به صورت پویایی دستگاهها را کشف میکند، درایورها را مستقر میکند، و واسط یکنواختی برای IoT-App، برای آنها فراهم میکند. برای کار آینده، متدی برای تحریک واسط عمومی انتزاعی باید با پروتکلهای مبتنی بر پروفایل موجود برای انتزاعی از بیشتر اشیای هوشمند وجود در بازار مطالعه شود. و، به دلیل اینکه واسط انتزاعی نمیتواند همه قابلیتهای هر شی را پوشش دهد، پلت فرم باید واسط تعمیمی یافتهای را برای مدیریت محاوره GUI برای تعامل اضافی بین کاربر و درایور شی هوشمند ارائه دهد.
این مقاله در سال 2015 در نشریه آی تریپل ای و در مجله اینترنت اشیا، توسط گروه دانشگاه گروه علوم کامپیوتر منتشر شده و در سایت ای ترجمه جهت دانلود ارائه شده است. در صورت نیاز به دانلود رایگان اصل مقاله انگلیسی و ترجمه آن می توانید به پست دانلود ترجمه مقاله اپلیکیشن مشاپ برای اکوسیستم IoT در سایت ای ترجمه مراجعه نمایید.