چهارشنبه ۱۳۹۷/۹/۲۱ - ۱۷:۳۵
میان‌افزار و نقش آن در اینترنت اشیاء
میان‌افزار، لایه‌ای (و یا مجموعه‌ای از زیرلایه‌های) نرم‌افزاری است که ارتباط بین لایه برنامه‌های کاربردی و لایه فنی را برقرار می‌کند. میان‌افزار وظیفه‌ پنهان کردن جزئیات تکنولوژی‌های مختلف را دارد. این وظیفه از آن جهت اهمیت دارد که برنامه‌نویس را از مسائلی که به او مربوط نیست، دور نگه می‌دارد تا بتواند بر توسعه نرم‌افزارهای خاص مبتنی بر زیرساخت‌های اینترنت اشیاء تمرکز کند.

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

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

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

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

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

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

برای برآوردن این اهداف مشترک، طرح اولیه میان‌افزار به شکل زیر تعریف شده است. تلاش این طرح بر این است که تمام ویژگی‌های برجسته کارهای قبلی که مربوط به مسائل میان‌افزار اینترنت اشیاء می‌باشد در نظر گرفته شوند. این طرح، مسائل مربوط به میان‌افزار را با یک رویکرد معماری کامل و یکپارچه مورد توجه قرار می‌دهد. در این طرح هر لایه به لایه‌های زیر متکی است.

 

fig2

 

  • برنامه‌های کاربردی

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

  • ترکیب خدمات

این لایه مشترک در بالای معماری میان‌افزار مبتنی بر معماری‌ سرویس‌گرا است و وظیفه‌ دارد خدماتی که به صورت جداگانه توسط شبکه‌ای از اشیاء ارائه می‌شوند را با هدف ایجاد کاربرد‌های خاص ترکیب کند. در این لایه هیچ مفهومی از دستگاه‌ها وجود ندارد و تنها دارایی‌ قابل مشاهده سرویس‌ها می‌باشند. داشتن آرشیو تمام نمونه‌های سرویس در حال اجرا مهم است و برای ساخت سرویس‌های ترکیبی استفاده می‌شود. منطق ایجاد و مدیریت خدمات پیچیده، می‌تواند با توجه به جریان کار فرآیندهای کسب و کار و با استفاده از زبان‌های جریان کار بیان شود. در این زمینه، معمولا زبان‌های استاندارد مانند زبان فرآیند کسب و کار (Business Process Execution Language (BPEL)) به کار گرفته می‌شوند. زبان‌های جریان کار فرآیندهای کسب و کار را تعریف می‌کنند؛ این فرآیندها با استفاده از عملیات سرویس وب که با زبان تعریف سرویس وب (Web Service Definition Language (WSDL)) تعریف می‌شوند، با موجودیت‌های خارجی ارتباط برقرار می‌کنند. می‌توان یک جریان کاری را از داخل دیگری صدا زد. ایجاد فرآیندهای پیچیده می‌تواند به عنوان دنباله‌ای از اعمال هماهنگ شده توسط اجزای جداگانه ارائه شود.

  • مدیریت خدمات

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

  • تبدیل اشیاء به مفاهیم قابل درک

اینترنت اشیاء شامل مجموعه‌ای گسترده و ناهمگنی از اشیاء می‌شود. هر شیء عملکرد خاصی دارد که به روش خاص خودش قابل‌ دسترسی می‌باشد. بنابراین نیاز به لایه‌ای انتزاعی داریم که بتواند دسترسی به دستگاه‌های مختلف را با روش‌های ارتباطی مشترک هماهنگ کند. در غیر این صورت هر دستگاه باید در یک شبکه IP سرویس وب ارائه دهد. نیاز به معرفی لایه‌ای داریم که شامل دو زیرلایه اصلی است: لایه رابط و زیرلایه‌های ارتباطی. لایه رابط، ارائه‌دهنده رابط وب است که روش‌های موجود را از طریق یک رابط سرویس وب استاندارد ارائه داده و مسئول مدیریت تمامی عملیات پیام‌رسانی ورودی/خروجی در ارتباط با دنیای خارج است. زیرلایه‌های ارتباطی، منطق متد‌های سرویس وب را پیاده‌سازی می‌کنند و این روش‌ها را به مجموعه‌ای از دستورات خاص دستگاه ترجمه‌ می‌کنند تا با اشیاء دنیای واقعی ارتباط برقرار کنند.

در این زمینه کارهایی با عنوان پشته TCP / IP  تعبیه شده در دستگاه‌ها، مانند TinyTCP، MIP وIwIP  ارائه شده است که سوکتی مانند رابط برای برنامه‌ها می‌باشد. وب‌سرورهای جاسازی شده را می توان با اشیاء یکپارچه کرد، تا بتوانند وظیفه این لایه انتزاعی شیء را انجام دهند. با این حال، این تابع غالبا از طریق یک پروکسی ارائه می‌شود که مسئول ایجاد سوکت ارتباطی با کنسول دستگاه و ارسال تمام دستورات به آن با استفاده از زبان‌های مختلف ارتباطی است. پس از آن باید زبان ارتباطی را به یک زبان خدمات وب استاندارد تبدیل کرده و گاهی درخواست را برای کاهش پیچیدگی عملیات مورد نیاز دستگاه تفسیر کند.

  • اعتماد، حفظ حریم خصوصی و مدیریت امنیت

گسترش ارتباط خودکار اشیاء در زندگی خطری برای آینده است. اما این خطر غالبا توسط کاربران نادیده گرفته می‌شود. برچسب‌های RFID تعبیه شده در لوازم شخصی، لباس‌ها و مواد غذایی می‌توانند به طور ناآگاهانه نسبت به شناسه و سایر اطلاعات خود واکنش نشان دهند. این امر امکان نظارت بر که قسمت‌های زیادی از زندگی را فراهم می‌کند. بنابراین میان‌افزار باید توابعی مرتبط با مدیریت اعتماد، حریم خصوصی و امنیت تمام داده‌های مبادله شده داشته باشد. توابع مربوطه می‌توانند بر روی یک لایه مشخص روی لایه قبلی ساخته شده و یا توزیع شده باشند، از انتزاع شیء گرفته تا ترکیب سرویس، به طوری که عملکرد سیستم را تحت تأثیر قرار ندهند یا سربار زیادی ایجاد نکنند.

 

در حالی که اکثر راه‌ حل‌های مبتنی بر میان‌افزار استفاده از معماری‌ سرویس‌گرا را پیشنهاد می‌کنند، برخی راه‌های مختلف دیگری را دنبال کرده‌اند، به خصوص آن‌هایی که برای سناریوی خاص طراحی شده‌اند (مثل زمانی که مجموعه خاصی از اشیاء یا سناریو جغرافیایی محدودی وجود دارد). یکی از پروژه‌های قابل توجه Fosstrak است که به طور خاص بر مدیریت برنامه‌های RFID تمرکز دارد. Fosstrak زیرساخت RFID منبع بازی است که اینترفیس‌های تعریف شده در مشخصات شبکه EPC را اجرا می‌کند.

برچسب‌ها