AUSOM: سرویس های خود مختار Middlewarefor برای سیستم های مبتنی بر IoT | AUSOM: Autonomic Service-Oriented Middlewarefor IoT-based Systems جدول مقالات آزادابزار تفکیک و ترجمه متون علمیمقالات اینترنت اشیاء
تماس با ما
 
بدان
 
امروز شنبه ، ۱۴۰۰/۰۷/۰۳
 
کلیه مقالات

AUSOM: سرویس های خود مختار Middlewarefor برای سیستم های مبتنی بر IoT

AUSOM: Autonomic Service-Oriented Middlewarefor IoT-based Systems

AUSOM: سرویس میانی سرویس دهنده محور برای سیستم های مبتنی بر IoT؛

خلاصه:

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

با این حال ، چنین سیستمهایی که از نظر ماهیت پویا هستند ، باید در پاسخ به شرایط متغیر ، تحریک پذیر باشند. از این رو آنها نیاز به خودمختاری دارند.

بنابراین این نیاز به طراحی و استقرار یک واسطه سرویس دهنده مستقل دارد که بتواند در تعامل و کنترل و سنجش و فعال سازی در سیستم مبتنی بر IoT کنترل کند.

برای این منظور ، در این مقاله ، ما دیدگاه خود را در مورد سرویس میانی خودمحور AUSOM (تلفظ "عالی" برای سیستمهای مبتنی بر IoT ارائه می دهیم.

ویژگی های اصلی AUSOM عبارتند از: اختلاط حلقه مشهور MAPE-K (مانیتور ، تجزیه و تحلیل ، برنامه ، عمل ، با استفاده از دانش ذخیره شده) از محاسبات خود مختار برای سازگاری فعال ، ادغام یک مدل زمینه چند لایه و استفاده از اطلاعات متنی برای تسهیل سازگاری در لایه دستگاه IoT (سنسور و محرک).

ما معماری AUSOM را ارائه می دهیم و همچنین نحوه عملکرد آن را با یک مثال ساده اما واقع بینانه نشان می دهیم.

مقدمه:

استدلال شده است که معماری سرویس گرا (SOA) رویکرد صحیحی برای مدل سازی و اجرای سیستم های IoTbased (IOTS) است [1].

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

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

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

آنچه که به خصوص دردناک است این است که این "قابلیت ارتجاعی" از نظر عملکرد کاربردی است و اغلب در برنامه های مختلف کپی می شود.

برای ساختن CPS به صورت مستقل (یا "خود" * همانطور که در توضیح داده شده است) یکی از ویژگی های پیشرفته تری در پارچه SOA نیاز دارد.

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

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

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

پارچه SOA که سازگار باشد ، اطمینان حاصل می کند که برنامه ها در برابر این تغییرات پویا شفاف هستند.

در این مقاله ، ما پیشنهاد می کنیم که این سازگاری را می توان با یکپارچه سازی MAPE-K (مانیتور ، تجزیه و تحلیل ، برنامه ، قانون ، با استفاده از دانش ذخیره شده) ، معماری مرجع محاسبه محاسبات [2] با SOA و به عبارتی مستقل ، زمینه اجرا کرد. آگاه SOA.

برای این منظور ، آنچه لازم است یک واسطه سرویس دهنده مستقل است که می تواند این سازگاری را به وجود آورد.

واسط نیاز به ارائه امکانات زیر است: انعطاف پذیری فعال از طریق حلقه MAPE-K. یک الگوی متنوع چند لایه که می تواند زمینه ها را در لایه های مختلف سیستم (مانند برنامه ، واسطه ، منابع و غیره) ضبط کند. و ترکیب این اطلاعات متنی برای هدایت تصمیم گیری های سازگار با خودکار در راستای روش MAPE-K.

در آنچه در زیر آمده است ، ما AUSOM (تلفظ "عالی") را ارائه می دهیم ، پیشنهاد ما برای واسطه ای مبتنی بر سرویس مستقل برای سیستم های مبتنی بر IoT که قابلیت های فوق را ارائه می دهد.

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

II.ILLUSTRATION:

بگذارید یک سیستم اتوماسیون ساختمان را برای یک دفتر در نظر بگیریم.

این دفتر دارای دو منطقه است: یک منطقه عمومی شامل محفظه هایی برای کارمندان و یک منطقه مهم میزبان مرکز داده است.

ما یک کاربرد ساده را به عنوان بخشی از سیستم اتوماسیون که در معرض خطر آتش سوزی است ، تجزیه و تحلیل می کنیم.

برخی از دستگاه های IoT برای پشتیبانی از برنامه ها هستند: آشکارسازهای دود ، آبپاش.

ریز سرویس هایی که در پلت فرم IoT در معرض دیدند ، شامل عملکردهایی مانند getSmokeLevel و turnSprinklerOn / Off است.

همچنین ، یک سوئیچ میکرو سرویس دهندهServerOn / Off وجود دارد تا سرورها را از راه دور روشن یا خاموش کنید.

یک برنامه در صورت بروز خطر آتش سوزی ، شرایط مختلف را پیاده سازی می کند.

خطر آتش سوزی با نظارت دوره ای سطح دود و تحریک سیگنال خطر در زمانی که سطح دود بیش از یک زمان مشخص بیش از مدت زمان مشخص شده است ، شناسایی می شود.

در سيگنال خطر ، آبپاش ها در اتاق ها روشن مي شوند تا اينكه مشخص شود آتش سوخته است.

در روش سنتی ، برنامه کاربردی سرویس getSmokeLevel را بطور دوره ای فراخوانی می کند ، منطقی را برای مقایسه سطح برای مدت زمان مشخص اضافه می کند ، و سپس با استفاده از سرویس turnSprinklerOn برای آبپاش که در همان مکان دتکتور دود قرار دارد ، تماس می گیرد.

در همین حال ، آن را به طور مداوم با سرویس getSmokeLevel تماس می گیرد تا دریابد آتش سوزی است و از این طریق آبپاش را از طریق تماس خدمتی خاموش می کند.

این در شکل 2 نشان داده شده است.

فرض کنید که سیاستی برای اطمینان از خاموش بودن سرور قبل از روشن کردن آبپاش به عنوان رعایت استاندارد اعمال شده است [].

در این حالت ، برنامه باید اصلاح شود.

قبل از روشن کردن آبپاش ، باید بررسی کند که آیا آن در دیتاسنتر قرار دارد یا سرور روشن است ، در این حالت با سرویس SwitchServer تماس می گیرد تا سرور را خاموش کرده و سپس آبپاش را روشن کند.

حال اگر خاموش شدن به زمان زیادی طول بکشد ، به دلایل اولویت ، آبپاش حتی اگر سرور روشن باشد روشن می شود.

حال فرض کنید آبپاش را تغییر دهید تا هنگام روشن شدن فقط 5 ثانیه آبپاش شود.

با استفاده از این قابلیت میکرو سرویس ، برنامه باید دوباره منطق خود را تغییر داده و چندین بار سرویس را صدا کند تا آتش سوزی خاموش شود.

اگر بیش از یک آبپاش برای روشن کردن وجود داشته باشد ، کار پیچیده تر می شود و اگر آبپاش کار نکند ، برای جبران عدم دسترسی یکی از آبپاش ها ، دیگری را با جریان بالاتر سوئیچ کنید.

موارد فوق تأثیر زمینه (محیط ، سیاست ها) ، در دسترس بودن و قابلیت های خدمات ریز مربوط به دستگاه های IoT را بر منطق کاربرد نشان می دهد.

توجه داشته باشید که اصلی ترین شرط کاربرد این است که (1) آتش سوزی را تشخیص داده و 2) آتش سوزی را خاموش کند.

تغییرات در کد اساساً مطابق با روشی است که میکروسرویس ها بسته به متن و قابلیت های دستگاه با استفاده از آن توسط برنامه orchstrated می شوند.

بنابراین ، برای جدا کردن منطق برنامه از متن و میکرو سرویس های دستگاه ، می توانیم از واسطه استفاده کنیم.

Middleware فراخوانی detectFire را به گردش کار با حلقه در شکل 2 ترجمه می کند (getSmokeLevel ، اگر بیشتر از K باشد ، تایمر را شروع کنید ، getSmokeLevel ، اگر کمتر از K باشد ، حالت اولیه را به حالت اولیه ، یا حلقه دیگر بیشتر کنید. اگر تایمر از T بیشتر شود ، سیگنال آتش).

گردش کار douseFire در شرایط عادی عبارت است از: آبپاش یک ، ل: [getSmokeLevel ، اگر سطح کمتر از آب پاش K است ؛ از حلقه دیگر خارج شوید.

از طرف دیگر ، در صورت وجود خط مشی ، گردش کار ارائه شده توسط واسط راهنما برای آبپاش در دیتاسنتر هنگام کار سرور swtichoff Server است. اگر سطح کمتر از K است sprlerlerOf باشد ، از حلقه دیگر خارج شوید.

در حالت عادی ، هنگامی که توانایی آبپاش تغییر می کند ، گردش کار l است: آبپاش یک ، getSmokeLevel ، اگر سطح کمتر از آب پاشش K باشد ؛ از خروج دیگر حلقه l].

هنگامی که چندین آبپاش وجود دارد ، واسطه میانی douseFire را به sprinklerOn (1) ، sprinklerOn (2) ، l ترجمه می کند: [getSmokeLevel ، اگر سطح کمتر از K sprinklerOff (1) باشد ، sprinklerOff (2)؛ derket other loop l].

اما هنگامی که آبپاش 1 کاهش پیدا می کند ، گردش کار به آبپاش می رود (1) ، ل: [getSmokeLevel ، اگر سطح کمتر از K است sprinklerOff (2) ؛ از منبع دیگر خارج شوید]

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

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

در بخش بعدی ، ما توضیح خواهیم داد كه چگونه AUSOM پیشنهادی ما به سیستمهای مبتنی بر IoT در دستیابی به این سطح پویایی کمک می کند.

III. AUSOM:

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

A. مدل متن چند لایه:

مدل زمینه پیشنهادی چند لایه ما مبتنی بر کار قبلی ما در مورد واسطه سرویس گرا تطبیقی ​​برای سیستم های محاسباتی فراگیر است [3].

واضح است ، هر سیستم مبتنی بر IoT ، حداقل ، لایه های زیر را شامل می شود: برنامه ، وسط و دستگاه.

این ساختار خود را به یک مدل زمینه 3 لایه (به ترتیب A-Context ، M-زمینه و D-زمینه) ارائه می دهد ، که در جدول II به تصویر کشیده شده است.

برای مثال ما ، قابلیت های مورد نیاز دستگاه برای شناسایی آتش سوزی و مهار آتش است.

از ویژگی های مورد نیاز میان افزار برای ترجمه دستور بالا سطح برنامه douseFire به مجموعه ای از سرویس هایی است که پیاده سازی های دقیق را در دستگاه ها انجام می دهند.

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

در صورت جابجایی آبپاش به مرکز داده (یعنی از منطقه A تا منطقه B) ، قابلیت های میان افزار مورد نیاز باید در برابر مجموعه های مختلف از نقشه های موجود در M-Context ترسیم شوند تا اطمینان حاصل شود که این قابلیت ها در واقع می تواند راضی باشد.

معماری B.AUSOM؛

معماری AUSOM همانطور که در شکل 3 نشان داده شده است.

ماژول Monitor وظیفه تشخیص وقایع پویا ، مانند وضعیت اجرای گردش کار ، تحرک (افت / خرابی) دستگاه ها و شروع / خاتمه زمان اجرا برنامه ، تغییرات مشخص شده در وضعیت دستگاه و محیط را دارد.

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

تغییرات در وضعیت دستگاه که منجر به تغییر در قابلیت ها می شوند توسط خود دستگاه های (خود آگاه) به AUSOM منتقل می شوند.

ماژول آنالیز در صورت بروز هرگونه تغییر در مجموعه دستورات برنامه و قابلیت های دستگاه ، بررسی می کند و نیاز به (1) تولید گردش کار جدید ، (2) حذف گردش کار غیر ضروری و / یا (3) را تعیین می کند. ) اصلاح گردش کار موجود.

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

توجه داشته باشید که این ماژول می تواند از دانش به دست آمده از حلقه MAPE-K برای تصمیم گیری هوشمندانه در مورد حذف / تغییر استفاده کند.

به عنوان مثال ، اگر یک برنامه به صورت دوره ای تولید شود ، ممکن است گردش کار برای دستورات آن یادداشت شود ، بنابراین هزینه تولید را کاهش می دهد.

لازم به ذکر است که در اصل دو دلیل وجود دارد که تولید خودکار گردش کار را در این مورد ضروری می داند: تأخیر بزرگ احتمالی محاسبه مورد نیاز برای تولید گردش کار ، که ممکن است در صورت نیازهای زمان واقعی کوچک ، راه حلی عملی نباشد. به خصوص در سناریوهای IoT که نیاز به پاسخ زمان واقعی دارند.

ب - تولید جریان کار به موارد خاص برای مشخص کردن پیش شرط / جلوه ها و الگوریتم های برنامه ریزی بستگی دارد ، همانطور که قبلاً در کار قبلی خود تجربه کرده ایم [4].

بنابراین نیاز به قابلیت بیان ممکن است مانع تولید جریان کار شود.

به منظور رسیدگی به پرونده [A] ، ما یادداشت هایی را برای گردش های متداول استفاده می کنیم ، و استفاده مجدد از آنها (با اصلاحات مناسب) ، و همچنین تولید جریان های جدید در صورت مناسب نبودن پیشنهاد کرده ایم.

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

این کار از طریق برنامه ریزان هوش مصنوعی (AI) انجام می شود.

برنامه ریزان AI مشخصات دامنه و مشکل را در نظر می گیرند ، آنها را تجزیه کرده و آنها را به بازنمایی های داخلی لازم برای استفاده از الگوریتم های مختلف برای ساخت برنامه تبدیل می کنند.

نمادهای مختلفی برای مشخصات ورودی مانند PDDL (زبان برنامه ریزی دامنه برنامه ریزی) [5] و NDDL (زبان توصیف دامنه جدید) [6] ارائه شده است.

با این حال ، بیشتر برنامه ریزان به سمت نمایندگی استاندارد PDDL گرایش دارند.

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

برخی از برنامه ریزان مشهور اخیر OPTIC [7] است که از اقدامات ماندگار ، FF [8] و انواع آن ، ماداگاسکار [9] و انواع آن پشتیبانی می کند.

با این حال ، ورودی های مهم برای این برنامه ریزی هوش مصنوعی ، ماژول Context Manager است.

این ماژول اطلاعات متن را در زمینه های A- ، M- و D- کشف و ذخیره می کند.

این اطلاعات به یکی از ورودی های ماژول برنامه ریزی برای تولید برنامه های خود تبدیل می شود.

ماژول اعدام وظیفه اجرای برنامه های تولید شده توسط ماژول برنامه ریزی را بر عهده دارد تا اجرای جریان های کاری متناسب با دستورات برنامه را انجام دهد.

هنگامی که یک برنامه از طریق AUSOM یک فرمان فراخوانی می کند ، واسطه میانی گردش کار مربوطه را انتخاب کرده و آن را اجرا می کند.

ما از زبانهای استاندارد توصیف گردش کار و ارکسترهای سازنده استاندارد برای این ماژول استفاده می کنیم.

ماژول دانش هر دو دانش استاتیک در مورد زمینه و همچنین دانش به دست آمده هنگام اجرا و وقایع پویا را ذخیره می کند.

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

این می تواند برای پیش بینی مورد استفاده قرار گیرد و منجر به تولید زودهنگام گردش کار ، کارآیی روند برنامه ریزی و بهینه سازی گردش کار شود.

IV. نتیجه گیری و کار آینده:

در این مقاله چشم انداز ، ما AUSOM ، پیشنهاد ما برای یک واسطه سرویس مدار مستقل برای سیستم های مبتنی بر IoT را ارائه داده ایم.

ما نشان داده ایم كه چگونه معماری AUSOM تطبیق اتوماتیک سیستم را در پاسخ به نیازهای تغییر برنامه و همچنین تغییرات متنی در محیطی كه سیستم در آن قرار دارد تسهیل می كند.

این سازگاری با استفاده از مدل زمینه چند لایه ما ، که یکی دیگر از ویژگی های اصلی AUSOM است ، تسهیل می شود.

در آینده نزدیک می خواهیم به موضوعات مقیاس پذیری و یادگیری در InteroAdapt بپردازیم.

مسئله مهم مقیاس پذیری در [10] مورد بررسی قرار گرفته است.

به منظور ادغام این یادگیریها ، ما به بررسی نسخه توزیع شده از معماری MAPE-K برای AUSOM خواهیم پرداخت.

کار آینده همچنین شامل ارزیابی ایده های ما در مورد سناریوهای بزرگ زندگی واقعی در حوزه های مختلف خواهد بود.