ساده سازی توسعه ی پروژه با استفاده از معماری اینترنت اشیاء

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

architecture overviewشکل 1 – دید کلی نسبت به اینترنت اشیاء

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

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

– معماری لایه ای اتخاذ کنید

– امنیت را در طراحی ها لحاظ کنید

– عملیات ها را هوشمند کنید

– قابلیت تعامل را در طراحی های خود در نظر بگیرید

– از یک معماری مرجع پیروی کنید

معماری لایه ای اتخاذ کنید

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

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

layered iot architectureشکل 2 – لایه های یک معماری اینترنت اشیاء

لایه ی دیوایس ها (Devices Layer)

بخش هایی که در لایه ی دیوایس هستند (پایین ترین لایه در شکل 2) شامل سنسورها و عملگرهای فیزیکی هستند که به دیوایس اینترنت اشیاء متصل می شوند. همچنین خود دیوایس ها نیز عضوی از این لایه هستند. سنسورها و عملگرها به خودی خود قطعات “هوشمند” نیستند اما سنسورها و عملگرها اغلب به طور مستقیم و یا بی سیم با فناوری هایی مانند بلوتوث کم توان یا زیگبی به دیوایس های اینترنت اشیاء که قابلیت پردازش بالاتری دارند، متصل می شوند.

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

لایه ی لبه (Edge Layer)

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

لایه ی ابری (Cloud Layer)

بعد از اینکه داده ها آماده شدند، به دلیل وجود کمبود هایی در پردازش و میزان حافظه، به اپلیکشین ها و سرویس های ابری ارسال می شوند.(بالاترین لایه در شکل 2). اپلیکیشن های ابری که بر روی داده ها پردازش انجام می دهند، معمولا به همراه یک اپلیکیشن تلفن همراه و یا اپلیکیشن های تحت وب ارائه می شوند تا بتوانند داده ها را به کاربران نمایش دهند و نیز به آن ها امکان دسترسی به ابزارهایی جهت انجام تحقیق و تحلیل بیشتر را از طریق رابط های کاربری بدهند.

امنیت را در طراحی خود پیاده سازی کنید

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

شما باید استاندارد ها و بهترین کارهای انجام شده را بررسی کنید و در زیر ساخت اینترنت اشیاء خود آن ها را پیاده سازی کنید:

– شناسایی دیوایس ها، اپلیکیشن ها و کاربران جهت دسترسی به کنترل

– مدیریت کلید (Key Management)

– امنیت داده

– امن کردن کانال های ارتباطی و تمامیت پیام ها (با استفاده از رمزگذاری)

– حسابرسی (Auditing)

– امن کردن توسعه و تحویل

خودکار کردن عملیات

مطمئن شوید که معماری اینترنت اشیائتان از خودکارسازی و ارکستراسیون (orchestration) در بین لایه ها برخوردار می باشد. برای استفاده از این قابلیت های خودکارسازی برنامه ریزی کنید تا اینکه از توسعه و گسترش سریع و آسان پشتیبانی کند. برای مثال جهت پیاده سازی یک معماری میکروسرویس در لایه ی لبه یا ابری می توان از فناوری های کانتینر و ارکستریزه شده توسط ابزار هایی مانند Kubernetes، که برای پلتفرم اینترنت اشباء آماده شده است استفاده کرد. این قابلیت ها باعث می شوند تا عملیاتی مانند اتصال یک دیوایس جدید یا درگاه، و یا گسترش یک اپلیکیشن ابری برای پردازش داده های دیوایس، منجر به خطای کمتری شود.  اجتناب از تنظیم کردن به طور دستی به شما این اطمینان را می دهد که عملیات قابل تکرار هستند؛ این کار به این دلیل مهم است که به پروژه ی شما قابلیت گسترده شدن برای اتصال هزاران یا حتی میلیون ها دیوایس را می دهد.

با درنظر گرفتن قابلیت تعامل طراحی کنید

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

یکی از بهترین استراتژی ها برای برقراری تعامل در اینترنت اشیاء استفاده از استانداردهاست. استاندارد ها برای شما قابلیت انعطاف پذیری برای خارج کردن یک بخش و یا اضافه کردن یک بخش جدید را (تا زمانی که بخش جدید هم از استاندارد پیروی کند) فراهم می کنند.

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

از معماری های مرجع پیروی کنید

در حال حاضر ابتکاراتی برای استاندارد سازی معماری های اینترنت اشیاء برای پیشبرد قابلیت تعامل در حال انجام است. کسانی که در حوزه ی پلتفرم های اینترنت اشیاء کار می کنند و محققان در حال مشارکت برای معرفی معماری مرجع اینترنت اشیاء هستند. معماری های مرجع به عنوان یک زیرساخت معمارانه می باشند که کارهای سطح بالاتر را که در حال استفاده در پروژه های اینترنت اشیاء هستند، توصیف می کنند و نیز یک واژگان جدید برای مفهوم های معماری ارائه می کنند. این ابتکارات در حال گسترش در دامنه ی وسیعی از پروژه های موجود می باشند تا استفاده ی موثر از الگوهای از پیش طراحی شده و نمونه های عملی را به ارمغان بیاورند.

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

اینترنت اشیاء – معماری (IoT -A): معماری IoT-A یک مدل و معماری مرجع می باشد که در یک پروژه ی EU lighthouse در سال 2013 توسعه داده شد. IoT-A برای توسعه ی معماری های به هم پیوسته که قابلیت اعمال بر روی حوزه های مختلف را دارند، طراحی شد.

 

استاندارد برای فریمورک معماری در اینترنت اشیاء (IEEE P2413): پروژه ی در حال انجام IEEE برای استاندارد سازی برای مشترک سازی حوزه های اینترنت اشیاء شامل تولید، ساختمان های هوشمند، شهرهای هوشمند، سامانه های حمل و نقل هوشمند، شبکه ی توزیع هوشمند و حوزه ی سلامت هدف گذاری شده است.

معماری مرجع اینترنت صنعتی (IIRA): معماری IIRA به طور خاص برای کاربرد های اینترنت اشیاء صنعتی توسعه داده شده است. توسعه ی این معماری توسط Industrial Internet Consortium انجام شده است که در مارس 2014 توسط AT&T ، سیسکو، جنرال الکتریک، IBM و اینتل تاسیس شد.

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

کامپوننت های یک معماری مرجع اینترنت اشیاء

جزییات معماری های مرجع، بسته به حوزه ای که کاربرد دارند، با یکدیگر متفاوت هستند؛ با این حال اکثر معماری های مرجع دست کم قابلیت های زیر را توصیف می کنند:

– مدیریت دیوایس ها و داده های آن ها

– قابلیت و نحوه ی اتصال

– تحلیل ها و اپلیکیشن ها

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

مدیریت دیوایس ها و داده های آن ها

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

– پذیرش سازمانی دیوایس (Device onboarding)

– به روزرسانی سیستم عامل دیوایس

– اعمال کردن پیکربندی های جدید

– راه اندازی عملیات از راه دور مانند غیرفعال کردن، فعال کردن و یا انهدام یک دیوایس

قابلیت و نحوه ی اتصال

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

تحلیل ها و اپلیکیشن ها

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

تجمیع معماری های مرجع

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

پلتفرم های چند منظوره ی اینترنت اشیاء اغلب معماری های مرجع کاربردی تری را به همراه راهنمایی هایی برای پیاده سازی و توسعه  مطابق با معماری های مرجع با استفاده از ابزار و نرم افزارهایی که توسط پلتفرم معرفی شده اند، محیا می کنند. برخی از معماری های مرجع پلتفرم محور عبارتند از:

– معماری مرجع اینترنت اشیاء IBM

– معماری مرجع پلتفرم اینترنت اشیاء Intel

– معماری اینترنت اشیاء Azure Microsoft

– معماری Amazon Web Services Pragma

معماری مرجع IBM Industrie 4.0 یک مثال از یک معماری در حوزه ی خاص می باشد که برای اپلیکیشن های اینترنت اشیاء صنعتی طراحی شده است و برپایه ی مرجع IIRA و نیز معماری مرجع IBM می باشد.

جمع بندی

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

 

منبع: IBM

محمدرضا داودی

دانشجوی مهندسی برق دانشگاه صنعتی اصفهان هستم و چند وقتی هست که به مبحث اینترنت اشیاء علاقه مند شده ام.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *