چکیده
محیط موبایلی اخیرا انواع گوناگونی از اشیای هوشمند را در خود دارد که به صورت فرصت طلبانهای به محیط پیرامون تلفنهای همراه نزدیک میشوند. بیشتر اپلیکیشنهای موجود در بازار تنها به مدل خاصی که تولید کننده در فاز توسعه انتخاب کرده است محدود میشوند، لذا آنها با اشیای ناهمگن حتی اگر عملکردهای مشابهی داشته باشند، سازگار نیستند. برای بهینه سازی اشیای هوشمندی که در پیرامون هر کاربر هستند، اپلیکیشن مشاپ IoT نیاز است تا به صورت پویا اشیای ناهمگون را کشف کند، ماژول نرم افزاری مورد نیاز را در زمان اجرا دانلود کند، و اپلیکیشن مشاپ را به کاربر ارائه دهد. در این مقاله، پلت فرم اپلیکیشن مشاپ IoT را که از کشف تلفنهای هوشمند، شناسایی، نصب و راه اندازی، مشاپ و ترکیب اشیای هوشمند پشتیبانی میکند را طراحی و اجرا کردیم. علاوه بر این، با جدا کردن نقش اکتورها در اکوسیستم IoT که از اینترفیس اشیای انتزاعی کاربردی استفاده میکنند، پلت فرم مزایایی را برای هر اکتور فراهم میکند مانند اینکه- تولیدکنندگان اشیا میتوانند قابلیت محصولات خود را به حداکثر برسانند، توسعه دهندگان اپلیکیشن میتوانند بر منطق تجاری خود متمرکز باشند، و کاربران نهایی میتوانند انتخاب کنند که کدام اشیای هوشمند برای ترکیب استفاده شوند.
1. مقدمه
امروزه، انواع بیشماری از دستگاههای هوشمند به اکوسیستم 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-MAP را، یک پلت فرم اپلیکیشن IoT جدید را که تعامل انعطاف پذیر با اشیای محیط را فراهم میکند، پیشنهاد میدهیم. دوم، یک رویه برای حل تعارض ID اشیا مبتنی بر استاندارد بین المللی با استفاده از اجرای سرور نام -Oliot-ONS (سرویس نام شی ) که مولفهای از پلت فرم زیر ساختی IoT Oliot (http://www.oliot.org) است طراحی میکنیم. سوم، دو روش از متدهای توسعه را ارائه میدهیم- کتابخانه IoT-App برای توسعه دهندگان اپلیکیشن برای ایجاد IoT-App، و ابزار نویسندگی GUI برای کاربران نهایی برای اسمبل کردن اپلیکیشن متناسب با هدف خود در زمان اجرا. در آخر، نتایج آزمایشی ارزیابی کلی IoT-MAP را گزارش میدهیم و دو سناریو آزمایشی استفاده کننده از پلت فرم برای اعتبارسنجی را ارائه میدهیم.
باقی این مقاله به این شرح سازمان یافته است. در بخش 2، در مورد مفهوم سطح بالا و ملاحظات طراحی پلت فرم IoT-MAP توضیحاتی ارائه دادهایم. در بخش 3 معماری IoT-MAP را برای پشتیبانی از توسعه و عملیات IoT-Apps معرفی کردیم، و بخش 4 پیش نیازهای مهمی را برای توسعه پویا و ترکیب خدمات اشیای هوشمند و اینکه چگونه توسط پلت فرم ما مدیریت میشود توضیح دادیم. سپس اجرای آن را در بخش 5 ارائه دادیم، ارزیابی و سناریوهای نسخه نمایشی اپلیکیشن را برای اعتبارسنجی در بخش 6 ارائه دادیم، کار مربوطه در بخش 7 آورده شده است و سرانجام نتیجه گیری مقاله در بخش 8 اورده شده است.
2. ملاحظات طراحی
امروزه دستگاههای IoT زیادی به بازارها وارد شده اند، اما قابلیت آنها به دلیل اینکه با یک اپلیکیشن موبایل تجهیز شده اند که اختصاصی تنها برای آن دستگاه طراحی شده است، محدودیتهایی دارد. برای مثال، لامپهای هوشمند مانند Philips Hue (http://meethue.com) اپلیکیشن موبایلی را برای برای روشن /خاموش کردن یا تغییر رنگها ارائه داده است. کاربران نهایی نمیتوانند استفاده از لامپهای هوشمند را منطبق با اپلیکیشن، حسگرها یا تعاملات خود سفارشی سازی کنند.
مسئله این است که نقش تولید کننده دستگاه با توسعه دهنده نرم افزار تفاوتی ندارد. توسعه دهنده نرم افزار بر چگونگی استفاده از قابلیتهای دستگاههای ناهمگن با IoT-App API، صرف نظر از پروتکلهای ارتباطی اصلی تمرکز میکند، در عین حال تولیدکنندگان دستگاه بر ارائه درست قابلیتهای دستگاه با اجرای پروتکلهای ارتباطی اصلی تمرکز میکنند. علاوه بر این، با توجه به انواع الویتهای کاربران نهایی، کاربران نهایی ممکن است بخواهند که اپلیکیشنهای چند منظورهای را در زمان اجرا با استفاده از واسط کاربر گرافیکی (GUI) ایجاد کنند یا ترکیب کنند. این به معنی این است که نقش توسعه دهندگان اپلیکیشن ممکن است به کاربران نهایی بسط یابد. بنابراین، در جایی که توسعه دهندگان اپلیکیشن و توسعه دهندگان دستگاه بر نقش خود برای برآورده کردن انواع پیش نیازهای کاربر متمرکز هستند، پلت فرمی لازم است.
مفهوم معماری مدل محور (MDA) [17] میتواند یک معماری لایه لایه را ارائه دهد به طوری که تقسیم نقش بین کاربران نهایی، توسعه دهندگان اپلیکیشن، و تولید کنندگان دستگاه حاصل میشود. ایده MDA استخراج مدل مستقل پلت فرم و خاص دامنه (مدل مستقل پلت فرم ، PIM) از عناصر خاص پلت فرم مانند زبان برنامه نویسی، سیستم عامل، یا پروتکلهای ارتباطی (مدل خاص پلت فرم ، PSM) برای کسب یک توسعه کارآمد یا قابلیت سازگاری بین سیستمهای متفاوت است.
Abstract
Recent mobile environment has various types of smart things which are opportunistically adjacent to the surrounding areas of mobile phones. However most of applications in the market are just statically bound to specific model of designated manufacturer which were chosen in development phase, so they are not interoperable with heterogeneous things even though they have similar functionalities. To optimize utilization of smart things residing in each user’s personal pervasive environment, IoT mashup application is required which dynamically discovers heterogeneous things, downloads needed software module at runtime, and provides mash-up application to the user. In this paper, we designed and implemented IoT Mashup Application Platform that supports smartphonecentric discovery, identification, installation, mashup and composition of the pervasive smart things. Furthermore, by decoupling the roles of actors in IoT ecosystem utilizing functionally abstracted thing interfaces, the platform provides benefits to each actor - thing manufacturers can maximize compatibility of their products, application developers can concentrate on their own business logic, and the end-users can select which smart things would be actually used for the composition.
I. INTRODUCTION
Numerous types of smart devices are coming into the IoT ecosystem these days, and some of them are even becoming integral parts of our everyday life. In this situation, if the flexible interaction between such smart things and personal mobile device become feasible, they can provide better user experiences and novel services compared to the stock applications that only interacts with specific devices. For example, we can think of a simple service that visualizes body temperature or heart rate measured with body-attached sensors, by controlling brightness or color of a smart bulb. In conventional mobile development environment, applications that provide such services are usually bound to particular model of things which was chosen by developer at implementation time. Such applications could interact with only the smart things whose binding has been defined at implementation time. So, current mobile applications cannot easily adapt to the surrounding environment.
In this paper, we propose IoT-MAP, a mobile application platform aiding flexible interoperability between mobile devices and surrounding smart things - and we name those applications developed based on the platform library as IoTApp. The IoT-MAP platform provides various improvements of actors in current IoT ecosystem as shown in Figure 1. For the mobile application developers, IoT-MAP provides a set of intuitive APIs to build an IoT-App easily, such as thing discovery, connection and retrieval of abstracted service object which can be directly used as if it is actual thing. With those support of IoT-MAP platform, they can write their own business logic in POJO (plain old java object) style without consideration of actual connectivity and implementation of smart things. For the thing manufacturers, they can easily participate in the ID resolution procedure of the platform by preparing their own name server based on ONS and driver bundle repository. Because the ONS is designed based on DNS technology, the manufacturer’s name server can be integrated to other distributed ONS servers, therefore the end-users can find driver bundle of their things directly provided by the manufacturer without any knowledge (e.g. manufacturer name, thing name, serial number, etc.) of the thing. And finally for the end-users, they can choose which thing would be actually participate in the desired service by selecting the discovered things at run-time. Moreover, in case of there is no IoT-App matches user’s requirement in the market, end-users can utilize the GUI authoring tool provided by IoT-MAP platform. The users can assemble application using their finger at run-time with discovered things and logic modules that make each things interoperable, then those modules are dynamically downloaded and composed to form an application of user’s purpose.
The contribution of this paper is summarized as follows. First, we propose the IoT-MAP, a novel IoT mashup application platform that provides flexible interaction with surrounding things. Second, we designed an international standard based Thing ID resolution procedure utilizing wellestablished name server implementation - Oliot-ONS (Object Name Service) which is a component of IoT infrastructure platform Oliot(http://www.oliot.org). Third, we provide two ways of development methods - IoT-App Library for application developers to create IoT-App, and GUI author tool for end-users to assemble application fit on their purpose at run time intuitively. Finally, we report experimental results on overhead evaluation of IoT-MAP and give two demo scenarios utilizing the platform for verification.
The rest of this paper is organized as follows. In Section 2, we describe about high level concept and design consideration of our IoT-MAP platform. Section 3 introduces architecture of IoT-MAP to support development and operation of IoT-Apps, and Section 4 explain critical requirements for dynamic deployment and service composition of smart things and how they are handled by our platform. Then we present implementation in Section 5, show evaluation and demo application scenarios for verification In Section 6. We introduce related work in Section 7 and finally conclude the paper in section 8.
II. DESIGN CONSIDERATIONS
Many IoT devices are coming to the market nowadays, but their capabilities are limited because they are equipped with a mobile application which was specifically designed for the devices. For example, smart bulbs such as Philips Hue (http://meethue.com) provide a mobile application to turn on/off or change colors. End-users cannot customize use of smart bulbs according to other application logics, sensors or actuators interactions.
The problem is that the role of device manufacturers is not differentiated with that of application developers. Application developers focus on how to use the functionalities of heterogeneous devices with IoT-App API, regardless of underlying connectivity protocols while device manufacturers focus on providing the device functionalities correctly by implementing underlying connectivity protocols. Furthermore, due to variety of end-user preferences, end-users may want to create or compose their own or versatile applications at run-time using a graphical user interface (GUI). It means that the role of application developers may be extended to that of end-users. Therefore, a platform is necessary where application developers and device manufacturers concentrate on their role to satisfy variety of user requirements.
The concept of model driven architecture (MDA) [17] can provide a layered architecture so that division of roles among end-users, application developers, and device manufacturers is achieved. The idea of MDA is to extract platform-independent and domain-specific model (Platform Independent Model, PIM) from platform-specific elements such as programming languages, operating systems, or communication protocols (Platform Specific Model, PSM) to achieve an efficient development or interoperability between different systems.
چکیده
1. مقدمه
2. ملاحظات طراحی
3. پلت فرم اپلیکیشن مشاپ IoT
A. معماری سیستم پلت فرم IoT-MAP
B. لایه ترکیبی
4. استقرار و شناسایی پویای اشیای هوشمند
A. سرویس نام شی و EPCglobal
B. کد محصول الکترونیک و جایگزینها
5. اجرا
A. پل زدن فریم ورک OSGi و Android Dalvik VM
6. ارزیابی و نسخه نمایشی اپلیکیشن
A. سناریوی تماس با Bendi
B. سناریوی اپلیکیشنهای چند منظوره
C. ارزیابی سر بار پلت فرم IoT-MAP
7. کارهای مربوطه
8. نتیجه گیری
منابع
Abstract
1. INTRODUCTION
2. DESIGN CONSIDERATIONS
3. THE IOT MASHUP APPLICATION PLATFORM
A. IoT-MAP Platform System Architecture
B. Composition Layer
4. DYNAMIC IDENTIFICATION AND DEPLOYMENT OF SMART THINGS
A. EPCglobal and Object Name Service
B. Electronic Product Code and the Alternatives
5. IMPLEMENTATION
A. Bridging OSGi Framework and Android Dalvik VM
6. DEMO APPLICATION AND EVALUATION
A. Bendi Call Scenario
B. Versatile App Scenario
C. Overhead Evaluation of IoT-MAP Platform
7. RELATED WORK
8. CONCLUSION
REFERENCES