7 مفهوم کلیدی و مهارت لازم برای شروع کار با اینترنت اشیا
اینترنت اشیا یک سامانه سراسری شامل قطعات فیزیکی متصل به هم می باشد که از طریق اینترنت داده های خود را منتقل می کنند. این اتفاق قطعا بر روی نحوه زندگی کردن و کارکردن ما تاثیر خواهد گذاشت . در حال حاضر قطعات اینترنت اشیا به طور گسترده ای در صنایع مورد استفاده قرار می گیرند. از جمله کاربرد های امروزه اینترنت اشیا حوزه سلامت، صنایع تولیدی، وسایل نقلیه، صنایع کوچک و عمران می باشند. هم اکنون بیشتر کسب و کارها در حال تلاش برای متصل کردن قطعات خود به اینترنت هستند تا بازدهی خود را بالا برده و نیز خدمات ارزشمند تری را به مشتریان خود ارائه کنند. با در نظر گرفتن سرعت پیشرفت اینترنت اشیا و نیز تعداد میلیاردی قطعات متصل به اینترنت، در خواست ها برای کسب مهارت در این حوزه بسیار زیاد شده است.
توسعه دهندگانی که می خواهند در این حوزه موفق شوند، باید حتما مهارت های زیر را فرا گیرند.
– سخت افزار
– شبکه
– طراحی نرم افزار
– توسعه دهندگی نرم افزار
– امنیت
– هوش تجاری و داده کاوی
– یادگیری ماشین و هوش مصنوعی
1 – سخت افزار
بدنه اصلی اینترنت اشیا شامل میلیارد ها “چیز” یا سنسور ها و عملگرهای متصل به قطعاتی است که وظیفه تشخیص دادن و کنترل کردن جهان فیزیکی اطراف را بر عهده دارند. توسعه سخت افزاری این قطعات نیازمند مهارت های مهندسی برق است در حالیکه برای طراحی و ساخت فیزیکی آنها به مهارت های رسم صنعتی و کار با نرم افزار های طراحی نیاز خواهد بود .
علاوه بر اتصال به شبکه که برای جمع آوری داده ها ضروری است، قطعات مورد استفاده باید یک سری قابلیت های اساسی شامل حافظه و پردازشگر داشته باشند که توسط میکروکنترلر ها و یا SoC ها ها تامین می شود.
دیوایس های اینترنت اشیاء قطعات نهفته هستند؛ بنابراین برای طراحی مدار آن ها باید سری محدودیت های عملیاتی پروژه را در نظر بگیریم؛ مانند:
– شرایط محیطی
– نوع و تعداد سنسور ها و عملگرهایی که می توانیم به یک قطعه متصل کتیم
– حجم داده ای که می تواند فرستاده یا دریافت شود
– اندازه، توان و دامنه عملکرد قطعه
– قیمت
– و موارد دیگر
قطعات اینترنت اشیاء ممکن است پلتفرمی از میکروکنترلر ها باشند مانند آردوینو یا کامپیوتر های تک برد مانند رزبری پای به همراه یک برد مدار چاپی (PCB) که در مراحل بعدی توسط توسعه دهنده اضافه می شوند. استفاده از این پلتفرم ها نیازمند مهارت طراحی مدار، برنامه نویسی میکروکنترلر و آشنایی با پروتکل های ارتباطی بین قطعات مانند سریال، I2C یا SPI (که معمولا برای ارتباط بین میکروکنترلر و سنسور ها و عملگرها به کار می رود) می باشد.سیستم های نهفته معمولا از C و C++ استفاده می کنند. این در حالی است که پایتون و جاوا اسکریپت محبوبیت بیشتری را در این زمینه دارند.
2- شبکه
اتصال یک جنبه دیگر از اینترنت اشیاء است که به دیوایس ها این امکان را می دهد که با دیگر قطعات و همچنین نرم افزار ها و سرویس های موجود در فضای ابری در ارتباط باشند. طراحی و مدیریت شبکه از جمله مهارت های الزامی اینترنت اشیاء می باشد. با توجه به تعداد زیاد قطعات متصل به هم و نیز تاثیر نحوه ی طراحی شبکه، تصمیمات طراح می تواند تغییر کند؛
به طور مثال شبکه با توپولوژی از نوع mesh بسیار مقیاس پذیر و قدرتمند می باشد و در اینترنت اشیاء بسیار رایج است. با این حال توزیع دستگاه ها در توپولوژی mesh بسیار پیچیده می شود و این امر باعث افزایش تاخیر و نیز نیازمند بودن به قطعاتی با توان بالا خواهد شد.
علاوه بر طراحی شبکه، توسعه دهندگان باید با استانداردها، پروتکل ها و فناوری های حوزه شبکه آشنایی داشته باشند. از جمله ی آن ها می توان وای فای (wifi)، بلوتوث کم انرژی (Low Energy Bluetooth) ، زیگبی (Zigbee) شبکه سلولی (Cellular) وفناوری RFID (که برای کاربرد های مصرف کنندگان مناسب است) و همچنین شبکه ی کم توان برای محدوده های وسیع (LPWAN) مانند لورا (LoRa) را نام برد.
SigFox و NB-IoT (اینترنت اشیاء باند باریک) نیز دو نوع دیگر از LPWAN می باشند که توان مصرفی کمتر، هزینه کمتر و محدوده ی اتصال وسیع تری را ارائه می دهند و برای کاربرد های در سطح وسیع و اینترنت اشیاء صنعتی استفاده می شوند.
3 و 4- طراحی و توسعه ی نرم افزار
نرم افزار های حوزه ی وب و تلفن همراه واسطه ای برای انتقال داده بین کاربر و قطعات اینترنت اشیاء می باشند. اما برخی از قطعات اینترنت اشیاء ممکن است واسط کاربری مختص خودشان را داشته باشند. واسط های مبتنی بر صدا و مبتنی بر حرکات دست، در حال گسترش در حوزه ی اینترنت اشیاء هستند به خصوص در کاربردی مانند خانه هوشمند.
این در حالی است که واسط های واقعیت افزوده، امکانات جذاب تری برای انتقال داده دنیای فیزیکی ارائه می دهند. در نتیجه طراحی UI و UX از مهارت های بسیار داغ این روزهای اینترنت اشیاء هستند.
نرم افزار های حوزه وب و تلفن همراه در حال توسعه با زبان های سطح بالا هستند که بین آن ها جاوا (Java) ، سویفت (Swift) و نود جی اس (Node.js) از برترین زبان های حوزه اینترنت اشیاء برای توسعه دهندگان می باشند.
مهارت برنامه نویسی برای جی پی اس (GPS) از مهارت هایی است که برای کاربردهای خاص مانند لباس و وسیله نقلیه هوشمند که نیاز به دانستن مکان دارند، مورد نیاز است. توسعه دهندگان باید از فریمورک های نوظهور و کیت های توسعه آگاهی داشته باشند تا بتوانند از به سرعت نمونه سازی های خود را انجام دهند.
همچنین آگاهی از پلتفرم های اینترنت اشیاء که زیرساخت ها و ابزار هایی برای خانه هوشمند و گسترش، مدیریت و عملکرد کاربرد های اینترنت اشیاء فراهم می کنند، مورد نیاز است.
5- امنیت
امنیت یکی از بزرگ ترین نگرانی ها در اینترنت اشیاء است. امنیت باید در تمام مراحل طراحی سیستم در نظر گرفته شود، نه به عنوان یک چاره اندیشی پس از اتمام ساخت قطعات!
مشکلات بحرانی که در این زمینه وحود دارند، رعایت اخلاق در کار با داده ها، حریم خصوصی و قابل اعتماد بودن می باشند.
بزرگترین چالش ها در حفظ امنیت در اینترنت اشیاء عبارتند از :
– دسترسی فیزیکی و دسترسی از طریق شبکه به قطعات و داده های آن ها
– نرم افزار ها و سرویس هایی که قطعات با آن ها در ارتباط هستند
– خود شبکه ها
با اتصال میلیون ها دستگاه در هر روز، تعداد نقاط با پتانسیل نفوذ افزایش پیدا می کند. دستگاه های در معرض خطر معمولا مورد حمله های ارسال درخواست مکرر به یک سرویس(DDos) قرار می گیرند. در این شرایط به روزرسانی سیستم عامل برای رفع مشکل امنیت بدون ایجاد تغییر در دستگاه و زیرساخت امنیتی آن چالش برانگیر خواهد بود.
با افزایش سرمایه گذاری ها در حوزه ی اینترنت اشیاء، مهارت های مهندسی امنیت مورد توجه قرار گرفته است. از جمله ی این مهارت ها عبارتند از: ارزیابی تهدیدها، هک قانونمند، رمزگشایی جهت اطمینان از صحت داده ها، معماری و کاربرد شبکه، نظارت رویداد، تهیه گزارش فعالیت ها، هوش تهدید (Threat Intelligence)
6- هوش تجاری و داده کاوی
با افزایش تعداد دیوایس های ارسال کننده داده متصل به اینترنت اشیاء ، داده های بزرگ به داده های واقعا بزرگ مبدل می شوند. توسعه دهندگان نیازمند یادگیری مهارت مدیریت داده های بزرگ هستند تا به طور امن و قابل اعتماد، داده های بزرگ و ناهمگن را از قطعات دریافت، ذخیره و جستار کنند.
برخی از قطعات اینترنت اشیاء تاخیر و یا داده های حساس به زمان ایجاد می کنند که باعث اهمیت موضوع فیلتر کردن و دور انداختن داده ها می شود. مهارت ها و فناوری های کلیدی ای که توسعه دهندگان باید به آن ها مسلط باشند عبارتند از هادوپ (Hadoop)، اسپارک (Spark) و پایگاه داده های نو اسکیوال (NoSQL) مانند مونگو دی بی (MongoDB)
7- یادگیری ماشین و هوش مصنوعی
برای ارزشمندسازی و قابل درک شدن حجم بسیار زیاد داده هایی که قطعات اینترنت اشیاء بدست می آورند، یادگیری ماشین و هوش مصنوعی آخرین مهارت های اجباری برای توسعه دهندگان اینترنت اشیاء می باشند. تحلیل هوشمند داده های بزرگ، شامل اعمال تکنیک های محاسبه ی شناختی (Cognitive Computing) می باشد که از استخراج داده، مدل کردن، آمار، یادگیری ماشین و هوش مصنوعی نشأت می گیرد.
این تکنیک ها می توانند بر روی جریان های داده سنسور ها اعمال شوند تا بتوان تجزیه و تحلیل های پیش بینی کننده انجام داد و یا به صورت مستقل در جواب به یک داده تصمیم گیری کرد. همچنین می توانیم تکنیک ها را بر روی داده هایی که ذخیره کرده ایم، اعمال کنیم تا الگوها و ناهنجاری های موجود در داده ها را برطرف کنیم.
منبع: IBM