عنوان صفحه
شکل ۲-۱: یک معماری کلی برای محاسبات پوشیدنی ۱۲
شکل ۲-۲: درخت اتکاپذیری ۱۶
شکل ۲-۳: رابطه علت و معلول نقص، خطا و شکست ۱۸
شکل ۲-۴: جنبه های تحمل خطا از نظر معماری یک کامپیوتر پوشیدنی ۲۶
شکل ۳-۱: یک معماری پیشنهادی برای محاسبات پوشیدنی ۴۲
شکل ۳-۲: طرح کلی معماری پیشنهادی ۴۳
شکل ۳-۳: معماری سختافزاری یک Body Node 44
شکل ۳-۴: معماری سختافزاری یک Master Node 45
شکل ۳-۵: معماری سختافزاری یک Mobile Node 45
شکل ۳-۶: یک معماری برای نظارت بر سلامت ۴۷
شکل ۳-۷: یک معماری مبتنی بر ایستگاه مبنا ۴۸
شکل ۳-۸: برقراری ارتباط بین Body Node و Master Node در حالت اول ۵۱
شکل ۳-۹: برقراری ارتباط بین Body Node و Master Node در شبکه A و در حالت دوم ۵۲
شکل ۳-۱۰: افزونگی TMR برای ماژول سنسور در Body Nodeها ۵۵
شکل ۳-۱۱: افزونگی standby برای ماژول سنسور در Body Nodeها ۵۶
شکل ۳-۱۲: الگوریتم تعویض سنسور ۵۷
شکل ۳-۱۳: برقراری ارتباط بین Mobile Node و Master Node در حالت اول ۶۶
شکل ۳-۱۴: برقراری ارتباط بین Master Node و Mobile Node در شبکه A و در حالت دوم ۶۶
شکل ۳-۱۵: افزونگی standby برای ماژول گیرنده در Master Nodeها ۶۸
شکل ۳-۱۶: برقراری ارتباط بین Mobile Node و Body Node در شبکه A 72
شکل ۳-۱۷: تحمل خرابی باتری Master Node در شبکه های چند Master Nodeی که فاقد Master Node فیزیکی افزونه هستند ۷۵
شکل ۴-۱: دیاگرام انتقال حالت یک سیستم تک مؤلفهای ۹۳
شکل ۴-۲: یک سیستم standby با یک مؤلفهی افزونه ۹۴
شکل ۴-۳: دیاگرام انتقال حالت یک سیستم standby با یک مؤلفهی افزونه ۹۴
شکل ۴-۴: قابلیت اطمینان در Body Nodeها ۹۶
شکل ۴-۵: قابلیت اطمینان در Master Nodeها ۱۰۰
شکل ۴-۶: قابلیت اطمینان در معماریها ۱۰۳
چکیده
خرابی در سیستمهای با کاربردهای حساس، می تواند فاجعههای جبرانناپذیری را رقم بزند. طراحی این دسته از سیستمها باید به گونه ای باشد که در صورت رخداد خطا، قادر به انجام صحیح وظایف خود باشند، به علاوه تا حد ممکن از بروز خطا جلوگیری شود. از اینرو تحملپذیری در برابر خطا برای سیستمهایی با کاربردهای حساس یک نیاز حیاتی است. کامپیوترهای پوشیدنی نمونه ای از این سیستمها هستند که امروزه به صورت گسترده در کاربردهای حساس از جمله حوزه سلامت مورد استفاده و توجه محققان قرار گرفتهاند. به عنوان مثال خطای این سیستمها برای بیماری که کیلومترها از دکتر خود یا بیمارستان فاصله دارد می تواند عواقب جبران ناپذیری را به همراه داشته باشد. لذا تحملپذیری محاسبات پوشیدنی در برابر خطا ضروری است و باید به صورت جدی مورد مطالعه قرار گیرد. در تحقیق حاضر مشخص می شود که با وجود اهمیت موضوع، در این زمینه تحقیق زیادی صورت نگرفته است. از اینرو با مطالعه کارهای دیگران و بررسی معماریهای موجود، در این تحقیق یک معماری سه لایهای متشکل از محاسبات پوشیدنی، محاسبات سیار و محاسبات ابری ارائه می شود. عملکرد صحیح سیستمهای استفاده کننده از این معماری، یک چالش است. در این تحقیق به منظور حل چالش ذکر شده، یک چارچوب تحمل خطا برای معماری فوق ارائه می شود. همچنین، اثبات می شود که این چارچوب تحمل خطا قابلیت اطمینان را افزایش میدهد.
واژه های کلیدی: محاسبات ابری، محاسبات سیار، محاسبات پوشیدنی، تحملپذیری خطا، گره ارباب، گره بدن، گره سیار
فصل اول
کلیات تحقیق
۱-۱ مقدمه
در دهههای اخیر تکنولوژیهای محاسباتی به دلیل پیشرفتهای چشمگیرشان همواره مورد توجه علوم مختلف بوده اند. این فناوریها با داشتن مزایای بسیاری از جمله کاهش هزینهها، افزایش دقت و سرعت، یاریگر سایر علوم بوده اند. کامپیوترها و فناوریهایشان به دلیل نقش مادر داشتن، در حال استفاده شدن در سایر فیلدهای علمی هستند.
در بین شاخه های مختلف علمی بعضی از حوزه ها از جمله حوزه سلامت حیاتی هستند. از سویی فناوریهای محاسباتی پا را فراتر نهادهاند و وارد این حوزه ها شده اند. در واقع کاربردهای حیاتی مجذوب پیشرفتها و مزایای چشمگیر این تکنولوژیها شده اند. امروزه کاربردهایی از جمله حوزه سلامت و درمان که نیاز به حداقل زمان پاسخ دارند با بهره گیری از این تکنولوژیها به پیشرفتهای عظیمی دستیافتهاند.
خطا در سیستمهای محاسباتی اجتنابناپذیر است اما در طرف مقابل در کاربردهای حیاتی ریسک معنا ندارد. پس باید سعی شود که عملکرد و کارایی سیستم با وجود این خطاها حفظ شود. این کار باید بگونهای انجام گیرد که سیستم از کار نیافتد بطوریکه بتواند به درستی کار کند. برای دستیابی به اهداف ذکر شده، سیستم باید در برابر خطا تحملپذیر باشد.
در واقع یک سیستم بدون در نظر گرفتن ملاحضات پایداری نمیتواند مورد رضایت کاربر واقع شود، اهمیت این موضوع در سیستمهایی که در معرض خرابی بیشتری هستند، به چشم می آید به خصوص در امر سلامت که تأخیر یا خرابی خسارتهای جبرانناپذیری در پی خواهد داشت که حتی ممکن است منجر به مرگ بیمار گردد. با توجه به اینکه مطالعات زیادی درباره تحملخطا برای محاسبات پوشیدنی در حوزه سلامت صورت نگرفته است، اینگونه مطالعات به ویژه در حوزه سلامت میتوانند مبنایی برای کارهای علمی آینده باشند.
در حال حاضر سه فناوری محاسبات ابری، محاسبات سیار و محاسبات پوشیدنی مطرحترین و عالیترین مباحث دنیای محاسبات میباشند که با کمک هم میتوانند بسیاری از مشکلات حوزه سلامت را حل کنند. در ادامه به منظور آشنایی بیشتر، تاریخچه این سه تکنولوژی مهم شرح داده می شود.
۱-۱-۱ تاریخچه رایانش ابری
در شبکه های کامپیوتری به صورت نمادین شبکه اینترنت را به شکل ابر نمایش می دهند. زیرا اینترنت همانند یک ابر جزئیات پیچیده و فنیاش را از دید کاربران مخفی نگه میدارد. این در حالیست که در دهه ۱۹۶۰ اصول و مفاهیم رایانش ابری توسط جان مک کارتی شرح داده شد. وی اظهار داشت که «رایانش ممکن است روزی به عنوان یکی از صنایع همگانی سازماندهی شود». همچنین در سال ۱۹۶۶ کتابی تحت عنوان «مشکل صنعت همگانی رایانه» توسط پارک هیل داگلاس نوشته شد که در آن تقریباً تمام ویژگیهای رایانش ابری مطرح شد.
سرانجام سایت آمازون از سال ۲۰۰۶ تصمیم به ارائه سرویس به کاربران با بهره گرفتن از رایانش ابری نمود. در واقع سایت آمازون با پیادهسازی بستر ابری بر روی مرکز دادهاش نقش مهمی را در توسعه و معرفی رایانش ابری داشت. با گذشت زمان رایانش ابری مورد توجه محققان و دیگر غولهای رایانهای از جمله گوگل قرار گرفت.
۱-۱-۲ تاریخچه محاسبات ابری موبایل
واژه «محاسبات ابری متحرک» تنها در مدت کوتاهی بعد از مفهوم «محاسبات ابری» در اواسط سال ۲۰۰۷ معرفی شد که توجهات را به خود به عنوان یک گزینهی تجاری سودآور جلب کرده است و باید گفت که توسعه و کارکردِ هزینه برنامه های موبایل را کاهش میدهد. محاسبات ابری متحرک از طرف کاربران موبایل به عنوان یک تکنولوژی جدید برای دستیابی به تجربهای غنی از سرویسهای گوناگون موبایل با هزینۀ کم است و از طرف محققان به عنوان یک راه حلِ امید بخش برای IT میباشد. کاربران موبایل میتوانند برنامه های موبایل را بر روی دستگاههای راه دور و از طریق شبکه های بیسیم اجرا کنند. محاسبات ابری متحرک اشاره دارد به یک زیرساخت که ذخیرهسازی داده و پردازشِ داده، هر دو در بیرون از دستگاه موبایل اتفاق میافتند. با مطالعهای که توسطJuniper Research صورت گرفته است استفادهی روزافزون از محاسبات سیار مشهود میباشد، این تحقیق بیان میکند که انتظار میرود مصرف کننده و بازار تجاری برای برنامههای درخواستی سیار مبتنی بر ابر تا سال ۲۰۱۴ تا بیش از ۵/۹ بیلیون دلار افزایش یابد.
۱-۱-۳ تاریخچه کامپیوترهای پوشیدنی
اگر کامپیوترهای پوشیدنی را بدین صورت تعریف کنیم که کامپیوترهایی هستند با قابلیت پوشده شدن بر بدن میتوان گفت که اولین کامپیوتر پوشیدنی یک ساعت جیبی است که در اوایل قرن شانزدهم ساخته شد. این نوع کامپیوترها به مرور توسعه یافتند بطوریکه در سال ۱۹۶۱ پدر تئوری اطلاعات یعنی ادوارد. او. تورپ[۱] کامپیوتری در ابعاد پاکت سیگار ساخت. این ابزار قادر به پیش بینی چرخش رولت[۲] بود. در سال ۱۹۷۷ کالینز[۳] جلیقهای برای افراد نابینا طراحی کرد همچنین در این سال شرکت HP ساعتی را ساخت که دارای ماشین حساب جبری بود. استیو مان[۴] در سال ۱۹۸۱ به منظور کنترل فلش دوربین عکاسی، کولهپشتی کامپیوتری را طراحی کرد. در سال ۱۹۸۶ ریانش کوچگری توسط استیو رابرتز[۵] مطرح شد. وی یک دوچرخه کهWinnebiko II نامیده میشد را ساخت. یک کامپیوتر و یک صفحه کلید در این دوچرخه تعبیه شده بود بطوریکه او میتوانست در هنگام حرکت تایپ کند. ادگار ماتیاس[۶] و مایک رویسی[۷] در سال ۱۹۹۴ یک کامپیوتر مچی را ابداع کردند. در همین سال محققان شرکت IBM یک کامپیوتر کمری ساختند. همچنین در سال ۱۹۹۴ مایک لامینگ[۸] و مایک فلاین[۹] یک کامپیوتر پوشیدنی تحت عنوانForget Me Not اختراع کردند که بر روی سر نصب میشد.
در دهه ۱۹۹۰ واژه سایبورگ[۱۰] مطرح شد. به انسانی که وسایلی از قبیل مخزن اکسیژن، به عملکرد عادی بدنش کمک می کنند یا اعضایی از بدنش را کنترل می کنند، سایبورگ گفته می شود. دکتر استیو ماندر سال ۱۹۹۴ یک وبکم بیسیم پوشیدنی ساخت، به ایشان سایبورگ زنده میگویند زیرا وی مخترع ابزارهای پوشیدنی زیادی است که بطور روزمره از آنها استفاده می کند. پروفسور کوین وارویک[۱۱] نیز یک سایبورگ زنده میباشد که در سال ۱۹۹۸ با انجام عمل جراحی یک قطعه سیلیکونی فرستنده-گیرنده خودکار بر روی بازویش کار گذاشته شد، با این کار او اولین انسانی بود که یک کامپیوتر در بدنش کاشته شد. کامپیوتر مذکور به وی این امکان را میدهد که به هنگام عبور از راهروها و دفاتر بخش دانشگاهی که او در آن کار میکند، درها باز شوند، همچنین این قطعه چراغها، بخاریها و کامپیوترها را بصورت اتوماتیک برایش روشن می کند و حتی تعداد ایمیلهایش را به او ابلاغ می کند.
اما از سال ۲۰۰۰ به بعد کامپیوترهای پوشیدنی با زندگی انسانها عجین شدند به گونه ای که هر روزه توسط کاربران برای انجام فعالیتهای مختلف استفاده میشوند. دکتر «روزبه جعفری» محقق ایرانی و استادیار دانشگاه دالاس به منظور نظارت بر وضعیت سلامت افراد، رایانه پوشیدنی بیسیم در ابعاد یک دکمه طراحی کرد که براحتی بر روی بدن نصب میشد. وی به دلیل این اختراع، در سال ۲۰۱۲ برنده جایزه بنیاد ملی علوم CAREERشد.
۱-۲ بیان مسأله
هر چقدر که سیستم حساستر باشد و در معرض مشکلات بیشتری قرار گیرد، مدیریت وقایع و رخدادها واجبتر میگردد. تحمل خطا یک نگرانی عمده برای تضمین در دسترس بودن و قابلیت اطمینان خدمات حیاتی و همچنین کارکرد درست سیستمهای نرمافزاری و سخت افزاری است. به منظور به حداقل رساندن تأثیر خرابی بر روی سیستم و کارکرد صحیح و موفق سیستم، خرابی باید پیش بینی شده و فعالانه مدیریت و کنترل گردد. روشهای تحمل خطا در واقع برای پیش بینی این خرابیها و انجام یک اقدام مناسب قبل از خرابی میباشد.
سهتایی فناوریهای روز شامل محاسبات پوشیدنی، محاسبات موبایل و محاسبات ابری پایه بسیاری از کاربردها و فناوریهای روز است. از جمله این فنآوریها محاسبات فراگیر مراقبتهای پزشکی است. علاوه بر محدودیتها و خطرهای موجود در ذات فنآوریهای موبایل و پوشیدنی، کاربردهای سلامت نیز نیازمند توجه بسیار خاص است که بدون خطا بودن سیستم یکی از ضروریات آنها است. لذا میبایست تحمل خطا در این سیستمها، مورد مطالعه قرار داد.
این درحالیست که تاکنون از این جنبه به موضوع نگاه نشده بود که سه فناوری ذکر شده به شرط در نظر گرفتن تحمل خطا، به کمک یکدیگر ایفای نقش کنند.
۱-۳ اهمیت و ضرورت تحقیق
پدیده های طبیعی و غیر طبیعی روزمره بشر امروزی با تکنولوژی همراه شده است. از میان این تکنولوژیها تلفنهای هوشمند و همراه به علاوه کامپیوترهای پوشیدنی نقش بسیار مهمی را در زندگی بشر بازی می کنند. رایانههای پوشیدنی در حوزههای زیادیاز قبیل:ورزش، مدل کردن رفتار، سامانههای نظارت بر سلامت و فناوری اطلاعات کاربرد دارند. سازمانهای دولتی، نظامی و بخش بهداشت و درمان هماکنون به طور روزمره از این رایانههای پوشیدنی استفاده میکنند. از این رایانه هااکثراً برای طب از راه دور و کنترل بیماران نیز استفاده می شود، به بیان دیگر از مهمترین کاربردهای کامپیوترهای پوشیدنی استفاده از آنها در حوزه سلامت است.
به علاوه شاهد افزایش تمایل استفاده از وسایل قابل حمل سبک برای دسترسی به خدمات از طریق اینترنت بجای کامپیوترهای شخصی هستیم. کامپیوترهای پوشیدنی و همراه با محدودیتهای زیادی از جمله محدودیتهای محاسباتی و سایر منابع روبرو هستد. از آنجاییکه چنین وسایلی، امکانات پردازشی قوی ندارند (به عبارتی علاقه ای به داشتنِ چنین امکاناتی ندارند)، پس چه کسی قدرت پردازشی را تامین خواهد کرد؟ پاسخ به این سوال در رایانش ابر نهفته است.
امروزه دنیای کامپیوترها در حال حرکت به سمت ذخیره کردن و پردازش اطلاعات به صورت آنلاین است. Cloud Computing که در زبان فارسی تحت عناوین «محاسبات ابری»، «رایانش ابری»، «پردازش ابری» و «کامپیوتر ابری» شهرت یافته است، به معنی به کارگیری قابلیت های کامپیوتری بر مبنای اینترنت است. در واقع قابلیت های کامپیوتری به صورت یک سرویس اینترنتی به کاربر عرضه می شود. ایده اصلی رایانش ابری را میتوان چنین بیان نمود: ارائه خدمات نرمافزاری و سخت افزاری از طریق اینترنت، به کاربران و سازمانها در تمام سطوح. نرمافزار، قدرت پردازشی، ظرفیت ذخیره سازی داده و پایگاه داده، از جمله خدماتی هستند که در سیستم ابری از طریق شرکتهای فراهم کننده منابع زیرساخت مثل آمازون در اختیار کاربران قرار میگیرد. در رایانش ابری کاربران در اِزای میزان استفاده و خدماتی که دریافت می کنند هزینه پرداخت مینمایند یعنی سیستم (a pay-per-use) در این فناوری استفاده میگردد.
استفاده از رایانش ابری مزایای زیادی را به همراه دارد، مزایایی از قبیل: عدم نیاز کاربران به کامپیوترهای قدرتمند و گران قیمت، کارایی بهینه و سریع کامپیوترهای شخصی کاربران، صرفهجویی در هزینه خرید و آپدیت برنامه ها و نرمافزارهای گران قیمت، ظرفیت نامحدود حافظه در اختیار کاربران، محافظت از تمام داده ها و اطلاعات کاربران(قابلیت اعتماد)، امکان دسترسی سهل و آسان به داده ها و اطلاعات شخصی توسط کاربران در هر لحظه و مکان، قابلیت مستقل از سخت افزار، دسترسی و کار همزمان چندین کاربر بر روی اسناد و پروژه ها(اشتراک آسان) و لذا گزینهای بسیار مناسب برای استفاده در محاسبات همراه و پوشیدنی است.
در حقیقت وقتی که تحرک کاربر و محاسبات دستگاههای متحرک را بخواهیم پشتیبانی کنیم گزینه محاسبات ابری موبایل مطرح می شود. قابلیت حرکت یکی از ویژهگیهای محیط محاسباتی است که باعث می شود کاربر به فعالیتش و استفاده از ابر در حین حرکت ادامه دهد.
با تمام این اوصاف، محاسبات ابری، محاسبات موبایل و کامپیوترهای پوشیدنی شامل مشکلاتی از قبیل: امنیت، تحملپذیری در برابر خطا، حریم خصوصی افراد و یکپارچگی داده ها هستند، که نیاز به بررسی دارند. هنگامی که از کامپیوترهای پوشیدنی در حوزه سلامت استفاده می شود، نیاز به تحملخطا بیش از پیش حائز اهمیت است. اگر سیستمهای حوزه سلامت در برابر خطا تحملپذیر نباشند ممکن است مشکلات جبران ناپذیری را برای بیمار به همراه داشته باشند تا حدی که منجر به مرگ بیمار شوند. قابلیت اطمینان در سیستمهایی با کاربردهای حساس، یک نیاز حیاتی بوده و این نوع سیستمهاباید طوری طراحی شوند تا بتوانند با وجود خرابی به وظیفۀ خود به طور مناسب ادامه دهند. لذا با توجه به اهمیت موضوع، به یک چارچوب تحملخطا برای محاسبات پوشیدنی در حوزه سلامت، نیاز است که در تحقیق حاضر مورد بررسی قرار میگیرد.
۱-۴ اهداف تحقیق
محاسبات سیار و محاسبات پوشیدنی به دلیل طبیعتشان دارای توان بالای پردازشی نیستند. از طرفی انجام کارهای محاسباتی بدون داشتن سختافزار قدرتمند و نرمافزار گران قیمت، یک نیاز است که توسط رایانش ابری برطرف می شود. لذا رایانش ابری به منظور رفع محدودیتهای محاسبات سیار و محاسبات فراگیر می تواند بهترین گزینه باشند. بنابراین ارائه یک معماری برای همکاری سه تکنولوژی محاسبات ابری، محاسبات سیار و محاسبات پوشیدنی، اولین هدف این تحقیق میباشد.
شبکه های حسگر بیسیم درحال استفاده شدن در محاسبات فراگیر از قبیل: حوزه سلامت، نظارت محیطی، مدیریت ساختمان، نظارت سازمانها و دستگاه های بزرگ هستند. اما اغلب به دلیل عوامل طبیعی و غیرطبیعی مانند زیاد گرم شدن، رسوب شیمیایی سطح سنسور، توان کم باتری و غیره دقت قرائتهای سنسورهای الکترونیکی کاهش مییابد و یا حتی عملکرد سیستم مختل می شود. دیگر هدف این تحقیق بررسی خطاهای پایدار و ناپایدار در شبکه های پوشیدنی میباشد.
تشخیص و مکان یابی خطا یکی از کلیدیترین اقدامات ابتدایی در برخورد با خطا میباشد. تا زمانیکه یک خطا تشخیص داده نشود نمی توان آنرا برطرف کرد به علاوه نمی توان اقدامات جبرانی را در سیستم به منظور کاهش اثر خطا انجام داد. به بیانی بعد از تشخیص و مکان یابی خطا میتوان به صورتی کارا آنرا مدیریت کرد. لذا تکنیکهای تشخیص و مکان یابی خطا در شبکه های پوشیدنی و مدیریتشان به عنوان یک هدف کلیدی، مورد بررسی قرار میگیرند.
همواره امکان ظهور خطا و خرابی در سیستمهای مختلف وجود دارد. سیستمی موفق است که بتواند با وجود خطاها و خرابیها بیشترین سرویسها را ارائه دهد. به عبارتی در کاربردهای حیاتی از جمله کاربردهای حوزه سلامت، تحملپذیر بودن سیستم ضروری است. همواره سیستمهای مختلف روشهای متفاوتی از تحمل خطا را مورد استفاده قرار می دهند. بررسی روشهای مختلف تحمل خطا در محاسبات پوشیدنی و فراگیر، از دیگر اهداف این تحقیق میباشد.
در زمینه تحمل خطا الگوریتمها و راهکارهای مختلفی ارائه شده است. پژوهشگران مختلف به منظور حل مسأله تحمل خطا راه حلهای مختلفی را ارائه دادهاند و از جهات مختلفی به موضوع نگاه کرده اند. به چالش کشیدن این راهحلها از اهداف مهم این تحقیق میباشد به عبارتی سعی بر این است که از دیدگاهی متفاوت به ارزیابی الگوریتمها و راه حلهای ارائه شده، پرداخته شود.
حوزه سلامت یک حوزه حیاتی است که از محاسبات پوشیدنی استفاده می کند. عواقب خطا و خرابی در این حوزه ممکن است قابل جبران نباشد از اینرو در این حوزه ریسک معنا ندارد. اما متأسفانه با توجه به اهمیت موضوع در فصل دوم از این تحقیق مشخص می شود که در این زمینه تحقیق زیادی صورت نگرفته است. لذا مهمترین هدف این پایان نامه ارائه یک چارچوب تحمل خطا برای محاسبات پوشیدنی در حوزه سلامت میباشد.
۱-۵ فرضیه های تحقیق
محاسبات پوشیدنی دارای مزایای بیشماری میباشند اما این واقعیت را نمی توان کتمان کرد که کامپیوترهای پوشیدنی بدون در نظر گرفتن محدودیتها و خرابیهای ممکن قابل استفاده نیستند. همچنین محاسبات سیار دارای محدودیتهای فراوانی هستند که قابلیت اطمینان آنها را برای کاربردهای حساس کاهش میدهد. به علاوه محاسبات ابری بر بستر اینترنت بوده و اگر توسط محاسبات موبایل مورد استفاده قرار بگیرد ممکن است در عملکرد آنها مشکلاتی پیش آید.
این سه فناوری به کمک هم میتوانند بسیاری از مشکلات بیماران را حل کنند. اما محدودیتهای آنان، خطری برای انجام صحیح عملکرد آنها است. لذا برای عملکرد صحیح این سه فناوری و همکاری آنها با هم، نیاز به یک چارچوب تحمل خطا است.
۱-۶ ساختار پایان نامه
در ادامه در فصل دوم تعاریف و مفاهیم اولیه به تفضیل شرح داده میشوند و همچنین تحقیقات انجام شده توسط محققان پیشین به صورت مفصل مورد بررسی قرار میگیرد. در فصل سوم که مهمترین فصل این پایان نامه است نتایج حاصل شده در قالب یک چارچوب تحملخطا برای محاسبات پوشیدنی در حوزه محاسبات فراگیر مراقبتهای پزشکی، ارائه می شود. سپس یک جمعبندی و نتیجه گیری در فصل چهارم مطرح می شود. در انتها فصل پنجم به بیان پیشنهادات و کارهای آتی می پردازد.
فصل دوم
ادبیات و سابقه پژوهش
۲-۱ مقدمه
خرابی در سیستمهای با کاربردهای حساس، می تواند فاجعههای جبرانناپذیری را رقم بزند. طراحی این دسته از سیستمها باید به گونه ای باشد که در صورت رخداد خطا، قادر به انجام صحیح وظایف خود باشند، به علاوه تا حد ممکن از بروز خطا جلوگیری شود. از اینرو تحملپذیری در برابر خطا برای سیستمهایی با کاربردهای حساس یک نیاز حیاتی است. کامپیوترهای پوشیدنی نمونه ای از این سیستمها هستند که امروزه به صورت گسترده در کاربردهای حساس از جمله حوزه سلامت مورد استفاده و توجه محققان قرار گرفتهاند. به عنوان مثال خطای این سیستمها برای بیماری که کیلومترها از دکتر خود یا بیمارستان فاصله دارد می تواند عواقب جبران ناپذیری را به همراه داشته باشد. لذا تحملپذیری محاسبات پوشیدنی[۱۲] در برابر خطا ضروری است و باید به صورت جدی مورد مطالعه قرار گیرد.
برای مطالعه تحملپذیری خطا در محاسبات پوشیدنی، نیاز به در نظر گرفتن محیط عملیاتی و غیر عملیاتی است. کامپیوترهای پوشیدنی برای غلبه بر برخی مشکلات و کاستیها، از امکانات سایر تکنولوژیها بهره میبرند. یک معماری سه لایه برای فعالیت محاسبات پوشیدنی در [۱] ارائه شده است که این معماری از سه فناوری محاسبات پوشیدنی، محاسبات سیار[۱۳] و محاسبات ابری[۱۴] بهره میبرد.
محاسبات پوشیدنی و محاسبات سیار دارای محدودیتهای زیادی از قبیل محدودیتهای محاسباتی و محدودیتهای منبع هستند، ولی به دلیل مزایای زیادی که در اختیار هم قرار می دهند، نمی توان آنها را در دنیای آینده محاسبات بدون دیگری تصور کرد . از طرفی برای رفع محدودیت پردازشی آنها از رایانش ابری استفاده شده است. لذا با توجه به محبوبیت و مزایای زیاد این سه تکنولوژی، هیچکدام را نمی توان از چرخهی محاسبات حذف کرد و از سوی دیگر آینده به تنهایی متعلق به هیچکدام از این سه تکنولوژی نیست. شکل ۲-۱ معماری سه لایهای پیشنهاد شده در [۱] را نشان میدهد.
محاسبات پوشیدنی |
محاسبات سیار |
محاسبات ابری |
شکل ۲-۱: یک معماری کلی برای محاسیات پوشیدنی [۱]
در این معماری کلی، کامپیوترهای پوشیدنی اطلاعاتشان را از محیط میگیرند و به کامپیوترهای سیار میفرستند. سپس کامپیوترهای سیار به منظور گرفتن سرویسهای مورد نیاز میتوانند با ابرها ارتباط برقرار کنند.
خدمات حیاتی باید در برابر خطا تحملپذیر باشند، و سیستم باید تحت هر شرایطی به فعالیتش ادامه دهد. لذا با بهره گرفتن از روشهای تحمل خطا باید خرابیها را پیش بینی کرد و اقدامات لازم را قبل از خرابی انجام داد. بنابراین در ادامه برای سازماندهی این مطالعه، از این معماری کلی استفاده می شود.
۲-۲ ادبیات تحقیق
محاسبات پوشیدنی امکان اتصال دستگاههای محاسبهگر سیار[۱۵] را به محیط پیرامون یا بدن جاندار فراهم می کند [۲][۳]. امکان انجام محاسبات به صورت سیار و همچنین اتصال دستگاه سیار به سایر شبکه ها یا ابزارها در هر زمان و هر مکان، توسط محاسبات سیار فراهم می شود [۴]. انجام کارهای محاسباتی و تحلیل داده ها با بهره گرفتن از سختافزار قدرتمند و نرمافزار گران قیمت، یک نیاز است که توسط رایانش ابری برطرف می شود [۵]. در رایانش ابری سرویسها بنا به تقاضای سرویسگیرنده، توسط مراکز داده و از طریق اینترنت ارائه میشوند [۶][۷]. محاسبات سیار و محاسبات پوشیدنی برای برقراری توازن بین سیار بودن و قدرت محاسباتی، خواهان توان بالای پردازشی نیستند. لذا میتوان از رایانش ابری برای رفع این محدودیتها استفاده کرد.
۲-۲-۱ کاربردهای محاسبات پوشیدنی
محاسبات پوشیدنی در بسیاری از کاربردها از قبیل تشخیص فعالیتهای فرد[۱۶][۸][۹][۱۰][۱۱][۱۲]، تشخیص افتادن[۱۷][۱۳][۱۴][۱۵][۱۶][۱۷]، کاربردهای سلامت و بهداشت [۱۸][۱۹][۲۰][۲۱][۲۲]، تحلیل فعالیتهای ورزشکاران [۲۳][۲۴][۲۵]، حوزه های کشاورزی [۲۶]، نظامی [۲۷]، سرگرمی و قمار [۲۸]، مورد استفاده قرار میگیرند. این استفادههای وسیع نشان می دهند که گرایش سیستمهای محاسباتی آینده به سمت ناهمگنی و فراگیری است [۲۹].
مسئله تشخیص فعالیتهای انسانی به دلیل نقشِ مادر بودن در سایر مسئلهها به عنوان یک مسئله کلاسیک مورد توجه قرار گرفته است. تشخیص فعالیتهای انسانی در حوزه های وسیعی از جمله حوزه سلامت [۳۰][۳۱][۳۲]، ورزش [۳۳][۳۴]، نظامی، سرگرمیها و بازیها، مسائل حفاظتی و غیره استفاده می شود .
در حوزه سلامت به دلیل هزینهها و محدودیتها نمی توان بیماران را در بیمارستانها و کلینیکهای پزشکی برای مدت طولانی نگهداری کرد. به علاوه، کنترل علائم حیاتی بیمار توسط افراد به صورت پیوسته و در دراز مدت، کسل کننده است بطوریکه ممکن است فرد ناظر برداشتِ اشتباهی را از داده های گردآوری شده داشته باشد. در اینگونه نظارتها فرد ناظر، باید تخصص یا مهارت لازم را برای کنترل علائم حیاتی بیمار داشته باشد. از طرفی هم یک متخصص مانند یک دکتر نمیتواند به مدت طولانی مسئول کنترل یک بیمار باشد زیرا بیماران زیادی به تخصص او و درمان شدن نیاز دارند. برای غلبه بر محدودیتهای ذکر شده، شبکه های پوشیدنی میتوانند یک گزینه خوب باشند [۳۵][۳۶][۳۷]. از مزایای این شبکه ها این است که کنترل وضعیت بیمار به صورت اتوماتیک و پیوسته، در دراز مدت صورت میگیرد. به علاوه دکتر می تواند در هر زمان و در هر مکانی از وضعیت سلامت بیمارش آگاه باشد. از طرفی، فرد بیمار فقط دستگاه پوشیدنی را میپوشد و هیچگونه نیازی به داشتن مهارت ها و تخصصهای خاص ندارد. علاوه بر موارد ذکر شده، باید خاطرنشان کرد که شبکه های پوشیدنی ارزان هستند و قابل استفاده توسط تمامی سطوح طبقاتی جامعه هستند.
مسائل تحلیل ورزشکاران یکی دیگر از کاربردهای شبکه های پوشیدنی است [۳۸][۳۹][۴۰]. رشته های مختلف ورزشی همواره خواهان استفاده از آخرین تکنولوژیهای روز بوده اند. با توجه به شرایط پر استرس مسابقات، تحلیل ورزشکاران در شرایط مسابقه یک مسئله چالشدار میباشد. لذا با کمک شبکه های پوشیدنی میتوان با هزینهای ارزان و به صورت دقیقی عملکرد ورزشکاران را تحلیل کرد. به طور مثال این شبکه ها میتوانند مشخص کنند که یک فوتبالیست چند کیلومتر دویده است؟ به طور تقریبی چقدر انرژی مصرف کرده است؟ چند پاس داده است؟ و یا چند شوت کرده است؟
با وجود کاربردهای روبه افزایش محاسبات پوشیدنی، تهدیدها و چالشهایی این فناوری را به مخاطره می اندازد [۴۱][۴۲]. برای مثال تحملپذیری در برابر خطا از این موارد میباشد. برای حصول تحملپذیری خطا تکنیکهای مختلفی استفاده می شود و مفاهیم زیادی مورد بهره برداری قرار میگیرد، برای مثال بررسی کیفیت داده های سنسورها می تواند مفید باشد. کاربردهای گوناگون از کامپیوترهای پوشیدنی در صورتی میتوانند اُمیدبخش و مفید باشند که بتوانند جریان کیفیت دادهی بالایی را در بازههای زمانی طولانی مدت مهیا کنند. کیفیت داده ها دارای معیارهای شناخته شده مرتبط بودن، به موقع بودن، دقت، در دسترس بودن، مقایسهپذیری و انسجام، میباشند [۴۳]. در شبکه های پوشیدنی پایداری، دقت، قابلیت مقاومت در مقابل خطرات از جمله فاکتورهای پر اهمیتِ کیفیت داده ها میباشند. فاکتورهای کیفیت داده باید در گردآوری، ذخیرهسازی و پردازش داده ها مورد توجه قرار گیرند.
تحمل خطا در سیستمهای محاسباتی بویژه در محاسبات پوشیدنی ضروری است. در سیستمهایی که در برابر خطا تحملپذیرند با وجود خطا سیستم باید قادر به انجام درست وظایف و ارائه سرویس باشد [۴۴][۴۵][۴۶]. در اینگونه سیستمها باید سرویسهای ارائه شده دارای کیفیت و شفافیت باشند. شبکه های پوشیدنی در کاربردهای وسیعی میتوانند مورد استفاده قرار گیرند که بسیاری از این کاربردها حیاتی هستند لذا بکارگیری مکانیزم های تحمل خطا در این شبکه ها حائز اهمیت است. از آنجایی که در بسیاری از کاربردهای حیاتی ریسک معنا ندارد، خرابی این سیستمها می تواند خسارات جبرانناپذیری را رقم بزند. بنابراین همواره باید سعی شود که با بهره گرفتن از روشهای تحمل خطا از شکست سیستم جلوگیری شود.
۲-۲-۲ تحملپذیری خطا در محاسبات پوشیدنی
با پیشرفت تکنولوژی، سیستمهای کامپیوتری پیچیدهتر شده اند. این درحالیست که طراحی سیستم پوشیدنی باید بگونهای باشد که با بروز نقص در قسمت های مختلف، سیستم دچار نقص عمده نشود. همچنین سیستم مذکور باید عملکرد صحیح خود را حفظ کند و در عین حال که کارایی کلی سیستم پایین می آید، برآورده شدن هدف نهایی سیستم ضروری است. با توجه به موارد بیان شده، تعریف سیستم پوشیدنی تحملپذیر خطا بدین شرح میباشد: یک سیستم پوشیدنی تحملپذیر خطا، سیستمی است که می تواند وظایفش را با وجود خطاها و خرابیهای نرمافزاری و سختافزاری، به درستی انجام دهد.
به دلیل افزایش استفاده از کامپیوترها در کاربردهای مختلف از زندگی بشر، تحملپذیری خطا برای سیستمهای مختلف، همواره مورد توجه محققان و طراحان بوده است. اما متأسفانه تحملپذیری خطا در محاسبات پوشیدنی، کمتر مورد بحث و بررسی قرار گرفته است. این در حالیست که به علت اهمیت مسأله، تحملپذیری خطا یک ویژگی بسیار مهم در تمام سیستمهای کامپیوتری میباشد.
با وجود تحقیقات فراوانی که درباره سیستمهای پوشیدنی انجام گرفته است، این تکنولوژی هنوز در عمل و در برخی از کاربردها مورد استفاده قرار نمیگیرد. میتوان دلیل اصلی این امر را آسیبپذیر بودن آنها نسبت به خطاها و خرابیها دانست. با توجه به دلیل فوق میتوان نتیجه گرفت که ایجاد تحملپذیری خطا در محاسبات پوشیدنی یک نیاز است. با در نظر گرفتن تحملپذیری خطا، با وجود خرابی در سیستم میتوان کارایی سیستم پوشیدنی را در حد قابل توجهای باقی نگه داشت. در این صورت با بروز خطا و خرابی برای تعدادی از مؤلفه ها، سیستم از ادامه انجام کار باز نمیماند و حداقل بحرانیترین وظایفی که برایش در نظر گرفته شده است را به صورت صحیح انجام میدهد.
در ادامه با ذکر سه سناریو بیان می شود که چرا تحملپذیری خطا در محاسبات پوشیدنی مهم است؟
سناریوی۱: سارا پیرزنی است که در شهر بروجرد به تنهایی زندگی می کند. وی به دلیل رنج بردن از نارسایی قلبی و فشار خون بالا به پزشک مراجعه کرد. با توجه به شرایط جسمانیاش پزشک تشخیص داد که او باید تا آخر عمر تحت نظر قرار بگیرد. به دلیل اینکه نگهداری سارا در بیمارستان برای چندین سال امکان پذیر نبود، پزشک معالج پیراهن هوشمندی را به او داد که این پیراهن قادر به کنترل علائم حیاتی بیمار بود. حسگرهای تعبیه شده در پیراهن، اطلاعات را از بدن بیمار میگرفتند و از طریق تلفن همراه بیمار، به پزشک معالج ارسال میکردند. پزشک نیز در مواقعی که بیمار وضعیت جسمانی خوبی نداشت، براساس این اطلاعات تصمیم گیریهای لازم را اتخاذ میکرد.
در ماه های ابتدایی این پیراهن بخوبی علائم حیاتی بیمار را کنترل میکرد. اما یک روز با وجود اینکه سارا شرایط جسمانی مطلوبی داشت، کنترل کننده ضربان قلبش[۱۸] علائم نامنظمی را به کامپیوتر پزشک ارسال میکرد. پزشک معالج که در آن روز در بروجرد نبود با مشاهده این علائم ، داروهایی را برای او در نظر گرفت و سریعاً با بیمارستان تماس گرفت. بلافاصله بیمارستان چند پرستار را به منظور تزریق آمپولها و مصرف داروها به خانهی او فرستاد. تیم پرستاری به محض معاینه بیمار متوجه سلامت و سالم بودنش شد. علت این تشخیص اشتباه، خرابی دستگاه بود که این مسئله باعث تحمیل هزینه به بیمارستان و بیمار گردید.
سناریوی۲: سیزده شیر نادر در آفریقا وجود دارد که هر کدام از آنها با بیماریها و خطرات طبیعی گوناگونی روبرو هستند. لذا پژوهشگران به منظور جلوگیری از انقراضِ نسل این شیرهای نادر، تصمیم به انجام اقداماتی گرفتند. با توجه به اینکه نگهداری آنها در قفس و در بلند مدت مقدور نبود، پژوهشگران تصمیم گرفتند که از شیرها در زیستگاههای طبیعی و بدون محدودیت نگهداری کنند. لذا آنها گوشوارههایی به گوش شیرها نصب کردند. گوشوارههای مذبور هوشمند بودند، به طوری که قادر بودند اطلاعاتی را در مورد وضعیت سلامت شیرها، برای پژوهشگران ارسال کنند. با آمدن فصل گرمِ تابستان، هنگامی که شیرها در زیر آفتاب سوزان قرار میگرفتند، گوشوارهها به درستی کار نمیکردند. به بیانی دیگر عملکرد حسگرهای این پوشیدنیهای هوشمند تحت تأثیر دما قرار میگرفت.
سناریوی۳: سوزان زن جوانی است که به بیماری ناشناختهای مبتلا بود از اینرو هرازگاهی به صورت ناگهانی غش میکرد و به زمین میافتاد. به تشخیص پزشک معالج، در زمان غش نباید جسم بیمار تکان میخورد. همچنین به منظور بازگشت فوری سلامت سوزان به حالت طبیعی، آمپولهایی تجویز شد تا بلافاصله بعد از هر بار غش به وی تزریق شوند. اما مشکل این بود که در هنگام غش مردم عادی از بیماری سوزان خبر نداشتند و با تکان دادن جسم او بلافاصله وی را به بیمارستان انتقال میدادند، از طرفی پزشکان هم از تزریق آمپولها بیخبر بودند. از اینرو پزشک معالج سعی کرد که مشکل را با یک گیرِ سر هوشمند حل کند.
عملکرد گیر سر هوشمند بدین صورت بود که در زمانی که سوزان غش میکرد، از طریق بلندگوی تعبیه شده در آن پیامِ «جسم بیمار را حرکت ندهید و برای کمک بلوتوث گوشیهایتان را روشن کنید» مدام پخش میشد، سپس گیر مذکور توسط بلوتوث پیامی را برای همه افرادی که بلوتوثشان روشن بود میفرستاد. متن پیام به افراد هشدار میداد که جسم بیمار را تکان ندهند و اورژانس را خبر کنند. همچنین در آن پیام، سابقه بیماری سوزان و نام آمپولها و دستورالعمل استفاده از آنها ذکر شده بود. اوضاع به خوبی پیش میرفت تا اینکه یک روز در اتوبوس سوزان دوباره غش کرد. گیرِ سر هوشمند دو بار پیام صوتی را پخش کرد. اما مسافران اتوبوس علیرغم اینکه بلوتوثهای گوشیهایشان را روشن کرده بودند، به دلیل خالی شدن باتری گیرِ سر هوشمند، هیچ پیامی را دریافت نکردند.
۲-۳ اتکاپذیری
سیستمهای محاسباتی با پنج ویژگی عملکرد[۱۹]، کارایی[۲۰]، اتکاپذیری[۲۱]، امنیت[۲۲] و هزینه شرح داده میشوند. اتکاپذیری یعنی مقدار توانایی یک سیستم در فراهم کردن سرویسهایی که قابلیت اطمینان قابل قبول دارند. مطابق شکل ۲-۲، مفاهیم مربوط به اتکاپذیری به سه دسته یعنی ویژگیها، تهدیدها و ابزارها تقسیم میشوند که در ادامه به شرح این مفاهیم پرداخته می شود.
شکل ۲-۲: درخت اتکاپذیری
۲-۳-۱ ویژگیهای اتکاپذیری یک سیستم
دسترسپذیری، قابلیت اطمینان، ایمنی، تمامیت و نگهداشتپذیری ویژگیهایی هستند که اتکاپذیری یک سیستم را مشخص می کنند. در ادامه به شرح این ویژگیها پرداخته می شود.
قابلیت اطمینان را با R(t) نشان می دهند، در واقع R(t) تابعی از زمان میباشد که یک احتمال شرطی را بیان می کند. احتمال شرطی بدین صورت است که، یک سیستم در طول مدت زمانِ (t0,t1) صحیح عمل کند، به شرط اینکه سیستم مذبور در زمان t0، به صورت صحیح شروع به کار کرده باشد.
باید خاطرنشان کرد که تفاوت بین تحملپذیری خطا و قابلیت اطمینان، بسیار مهم است. تحملپذیری خطا یک تکنیک است که قادر به افزایش قابلیت اطمینان میباشد. اما یک سیستم تحملپذیر خطا، لزوماً قابلیت اطمینان بالایی ندارد.
به طور مثال میتوان سیستمی طراحی نمود که قابلیت تحمل خطای بالایی داشته باشد، اما احتمال رخ دادن خطا و خرابی در این سیستم آنقدر بالا باشد که قابلیت اطمینان را بصورت زیادی کاهش دهد. یا برعکس، میتوان با بهره گرفتن از مؤلفه های بسیار خوب سیستمی طراحی نمود که هر مؤلفه با احتمال بسیار پایینی دچار خطا و خرابی شود، اما در صورت رخ دادن این اتفاق کار سیستم قطعاً متوقف می شود. در واقع این سیستم قابلیت اطمینان زیاد و قابلیت تحملخطای کمی را دارد.
دسترسپذیری را با A(t) نشان می دهند، در واقع A(t) تابعی از زمان میباشد که به صورت یک احتمال شرطی تعریف می شود. احتمال شرطی اینکه در لحظه t، سیستم صحیح عمل نماید و در دسترس باشد.
دسترسپذیری و قابلیت اطمینان از هم متفاوتند، بدین صورت که قابلیت اطمینان در یک بازه زمانی تعریف می شود اما دسترسپذیری در یک لحظه از زمان معنا دارد. با توجه به تعریف دسترسپذیری، اگر خطا در یک سیستم بصورت دورهای ظاهر شود، این امکان وجود دارد که آن سیستم از دسترسپذیری خوبی برخوردار باشد زیرا که طول مدت زمانی که خطا در سیستم ظاهر می شود می تواند کوتاه باشد.
ایمنی بیانگر این است که یک سیستم ایمن باید دارای سه ویژگی باشد. الف) در دسترس باشد و درست کار کند. ب)دارای سازگاری داده باشد. و ج)مانع از دسترسی افراد غیر مجاز به سیستم شود.
تمامیت و سازگاری داده به این مورد اشاره می کنند که در سیستم تغییرات نامناسب سیستمی رخ ندهد. به عنوان مثال داده های ذخیره شده در سیستم با یکدیگر ضدیت نداشته باشند.
قابلیت نگهداری، در اکثر سیستمها یکی از مهمترین اهداف میباشد. قابلیت نگهداری یعنی تحمل اصلاحات و تعمیرات، به عبارتی یعنی هنگامی که یک سیستم دچار مشکلی شد به راحتی قابل تعمیر باشد. قابلیت نگهداری را که با M(t) نشان می دهند که تابعی از زمان است که بیانگر احتمال آن است که یک سیستم خراب بتواند در زمان t به حالت عملیاتی بازگردد.
۲-۳-۲ تهدیدها
انواع تهدیدهایی که در رابطه با مفهوم اتکاپذیری وجود دارد را میتوان به سه دستهی نقصها، خطاها و خرابیها تقسیم کرد. در تحقیقات مختلف معمولاً مفاهیم نقص[۲۳]، خطا[۲۴] و شکست[۲۵] به عنوان واژگانی مترادف در نظر گرفته میشوند.در مبحث تحملپذیری خطا، سه واژه نقص، خطا و شکست از لحاظ تکنیکی ازهم متفاوتند، و بین آنها یک رابطه علت و معلول وجود دارد. یعنی مطابق شکل ۲-۳، خطا در سیستم به علت بروز نقص رخ میدهد. اگر به علت خطا سیستم نتواند عملکرد خود را بصورت صحیح انجام دهد، آنگاه خطا منجر به شکست سیستم می شود [۴۷].
شکل ۲-۳: رابطه علت و معلول نقص، خطا و شکست [۴۷]
اگر به برخی عوامل در فازهای طراحی و پیادهسازی توجه نشود، ممکن است خطا رخ دهد. بطور معمول فرایند طراحی با بیان شرح مسأله آغاز می شود. سپس طراح با بهره گرفتن از درکیاتش جزئیات بیشتری را به شرح مسأله اضافه می کند و یک راهحل ارائه میدهد و توسعه دادن الگوریتمها و طراحی معماری را شروع می کند. در پایان، زمانی که سختافزار یا نرمافزار درست شد، طراحی از یک مرحله آزمایشی عبور داده می شود تا عملکرد سیستم بگونهای باشد که شرح اولیه مسأله، تأمین شود. اما به صورت کلی دلایل خطاها می تواند به چهار دسته تقسیم شوند.
- توصیف اشتباه: مسأله توصیف اشتباه می تواند شامل طراحی الگوریتم اشتباه و معماریهای سختافزاری و نرمافزاری اشتباه، باشد.
- پیادهسازی اشتباه: از آنجا که پیادهسازی، فرایند تبدیل توصیف نرمافزار یا سختافزار به نرمافزار یا سختافزار واقعی است، یک پیادهسازی اشتباه می تواند باعث ایجاد شدن خطاهایی شود.
- خرابی عناصر: اجزاء فیزیکی عناصر بنا به دلایلی از قبیل ضعفهای ساخت یا خرابی تصادفی، ممکن است خراب شوند که خرابی هر یک از این اجزاء می تواند باعث بروز خطا شود.
- عوامل خارجی: عوامل محیطی و اشتباهات اپراتوری آخرین علت بروز خطا هستند. به عنوان مثال اگر یک مدار الکترونیکی در سرمای بیش از اندازه قرار بگیرد، ممکن است که باعث بروز خطا شود.
خطا دارای ویژگیهایی است؛ به طور مثالطبیعت خطا، طول مدت خطا[۲۶] و محدوده[۲۷] خطا سه ویژگی مهم خطاها میباشند. نوع خطا توسط طبیعت خطا مشخص می شود.به عنوان مثال یک خطا می تواند آنالوگ، دیجیتال، سختافزاری و یا نرمافزاری باشد.
مدت زمانی که خطا در سیستم فعال است توسط طول مدت خطا مشخص می شود. بر این اساس سه نوع خطای ماندگار[۲۸]، گذرا[۲۹] و متناوب[۳۰] وجود دارد. خطاهای پایدار به دلیل وجود خطا در مرحله ساخت سیستم یا در فاز عملیاتی، رخ می دهند. خطاهای پایدار و اثراتشان همیشه در سیستم باقی میمانند. رفع این خطاها نیازمند تعمیر یا تعویض سختافزار معیوب میباشد. اما خطاهای گذرا در محیط عملیاتی و در زمانی که سیستم مشغول کار است رخ می دهند. اینگونه خطاها قابل پیش بینی و جداسازی هستند و دارای منشأ محیطی (مانند رعد و برق، طوفان، افزایش دمای محیط) میباشند. زمانی که سیستم در وضعیت عملیاتی قرار دارد با بهره گرفتن از یکسری از روشها میتوان خطاهای گذرا را کشف کرد. دستهی دیگر خطاهای متناوب میباشند که در بازههای زمانی مختلف آشکار و ناپدید میشوند. به بیانی خطاهای متناوب گونه ای خاص از خطاهای ناپایدار میباشند. طبق آمار گزارش شده در [۴۸]، بیش از ۸۰ درصد خطاها از نوع متناوب میباشند.
نوع خطا در سناریوهای ذکر شده بدین صورت است که در سناریوی اول، به دلیل خرابی سنسور، خطا از نوع پایدار است. خطای مشاهده شده در سناریوی شیرهای نادر، از نوع گذراست، زیرا با افزایش دما و به صورت موقت بروز می کند. در سناریوی گیر سر هوشمند، به دلیل مصرف انرژی زیاد، باتری تخلیه شده و باعث بروز خطای پایدار گردیده است.
در بحث محدوده خطا، بر روی این موضوع بحث می شود که آیا خطا به یک واحد سختافزاری/نرمافزاری محدود می شود یا اینکه کل سیستم را فرا میگیرد. به طور مثال خرابی منبع تغذیه سیستم می تواند بر کل سیستم تأثیرگذار باشد.
بطور کلی طبقه بندیهای مختلفی از خطاها وجود دارد. به طور مثال خطاهای پایدار، ناپایدار، متناوب، بیخطر[۳۱] و بداندیش[۳۲] را میتوان به عنوان خطاهای سختافزاری در یک دستهبندی قرار داد [۴۹]. جدول ۲-۱، یک طبقه بندی رایج از خطاها را نشان میدهد.
انواع خطا | تعریف | مثال | |
|
|
عملکرد نادرست یک مؤلفهی سختافزاری | خرابی پردازنده |
|
عملکرد نادرست به سبب یک bug نرمافزاری | افتادن در یک حلقه تکرار بینهایت | |
|
|
خطا تا زمان اصلاح یا جایگزینی عامل خطا، در سیستم باقی میماند. | خرابی سنسور |
|
در زمان های مختلف خطا ناپدید و آشکار می شود | شل شدن سیم | |
|
پس از مدتی خطا ناپدید می شود | زیاد گرم شدن سنسور |
جدول ۲-۱:یک طبقه بندی رایج از خطاها
به منظور غلبه بر خطا میتوان از روشهایی بهره برد. به طور کلی برای غلبه کردن بر خطا و حفظ کارایی نرمال سیستم، سه روش الف) اجتناب از خطا[۳۳]ب) پوشاندن خطا[۳۴] ج) تحملپذیری خطا، وجود دارد. هر تکنیکی که برای جلوگیری از بروز خطا در سیستم، استفاده می شود، جزء تکنیکهای اجتناب از خطا میباشد. پوشاندن خطا یعنی اینکه پس از بروز نقص در سیستم، از تکنیکهایی استفاده کنیم تا از وقوع خطا جلوگیری شود. تحملپذیری خطا یعنی پس از بروز خطا، سیستم قادر به ادامه وظایف خود باشد.
شایان ذکر است که هدف نهایی تحملپذیری خطا، جلوگیری از رخ دادن خرابی در سیستم است. به منظور دستیابی به تحملپذیری خطا میتوان از تکنیکهای مختلفی از جمله پیکربندی مجدد استفاده کرد. معمولاً در پیکربندی مجدد میتوان عناصر خراب را از سیستم حذف کرد و سپس سیستم را به وضعیت کارآمد خود باز گرداند.
فرایندهای تشخیص خطا، تعیین موقعیت خطا، محدودسازی حوزه خطا و برطرف نمودن خطا، چهار تکنیک پیکربندی مجدد میباشند که طراح باید به آنها دقت کند. تشخیص خطا همان فرایند شناسایی خطاست که قبل از سه فرایند دیگر انجام می شود. بعداز شناسایی خطا باید مشخص کرد که خطا در کجا رخ داده است. پس از شناسایی و مکان یابی خطا باید آنرا ایزوله کرد یعنی باید از انتشارات اثرات خطا در کل سیستم جلوگیری شود. فرایند برطرف نمودن خطا یعنی پس از پی بردن به علت خطا، عملکرد سیستم به حالت مناسب بازگردانده شود.
به طور مثال فرض کنید که یک خطا در سیستمی که از تحملپذیری خطا پشتیبانی می کند، رخ داده است. در این صورت میتوان از تکنیکهای پیکربندی مجدد بدین صورت استفاده کرد که تکنیکهای تشخیص خطا، وجود خطا را در سیستم مشخص می کنند. در ادامه با بهره گرفتن از روشهای تعیین موقعیت خطا، منبع خطا مشخص می شود. سپس یا میتوان خطا را محدود کرد و یا میتوان آنرا رفع کرد. بدین صورت که رفع خطا و پیکربندی مجدد، واحد خراب را حذف می کنند و یا آنرا با مؤلفهی سالم دیگری تعویض می کنند. اگر امکان تعویض مؤلفهی خراب نباشد، میتوان با کمک تکنیکهایی و با کاهش قابل قبول کارایی، سیستم را در حالت فعال نگه داشت.
۲-۳-۳ ابزارهای اتکاپذیری
روشهای دستیابی به یک سیستم اتکاپذیر(ابزارها) به چهار دسته پیشگیری از اشکال، رفع اشکال، تحمل اشکال و پیش بینی اشکال، تقسیم میشوند.
- پیشگیری از اشکال: ابزاری است که برای جلوگیری از وقوع اشکال استفاده می شود. که این کار به وسیله طراحی کاملاً دقیق و اصولی قابل انجام است. به طور کلی روشهای پیشگیری از اشکال در مراحل طراحی و توسعه سیستمها مورد استفاده قرار میگیرند.
- رفع اشکال: روشهای رفع اشکال هدفشان کاهش تعداد و اثرات اشکالهاست.
- تحمل اشکال: روشهای تحمل اشکال، روشهایی میباشند که هنگام بروز اشکالها، از شکست سیستم جلوگیری می کنند، بدین صورت که خطا را تشخیص و بازیابی سیستم را انجام می دهند. در فرایند بازیابی، کارهای رسیدگی و اداره کردن خطا و اشکال صورت میگیرد. که فرایند اداره کردن اشکال از چهار مرحله تشخیص اشکال، جداسازی اشکال، پیکربندی مجدد سیستم و آغاز مجدد سیستم، تشکیل شده است.
در مرحله تشخیص اشکال، مکان و علت اشکال مشخص می شود، در مرحله جداسازی اشکال، از شرکت مؤلفه های معیوب در انجام وظایف سیستم، جلوگیری می شود. سپس در مرحله پیکربندی مجدد سیستم، از مؤلفه های افزونه استفاده می شود و یا کل وظایف سیستم تنها به مؤلفه های سالم، تخصیص مییابند. در مرحله آخر یعنی آغاز مجدد سیستم، پیکربندی جدید سیستم مورد استفاده قرار میگیرد.
- پیش بینی اشکال: با بهره گرفتن از ارزیابی سیستم میتوان اشکال را پیش بینی کرد. به روشهایی که تعداد فعلی اشکالها، نرخ وقوع اشکالها در آینده و پیامدهای احتمالی اشکالها را تخمین زده و پیش بینی می کنند، روشهای پیش بینی اشکال گفته می شود. فرایند پیش بینی اشکال، بوسیلهی ارزیابی سیستم صورت میگیرد که این ارزیابی به دو طریق کمی و کیفی قابل انجام است.
در بحث ابزارهای اتکاپذیری ممکن است این سؤال مطرح شود که بهترین ابزار چیست؟ هرچند که میتوان در طراحی و توسعه سیستم از روشهایی به منظور پیشگیری از اشکال استفاده کرد، اما همواره این امکان وجود دارد که در سیستم اشکالهایی رخ دهد. از اینرو ابزار پیشگیری اشکال، به تنهایی کافی نمی باشد و نیاز به ابزار رفع اشکال نیز میباشد. اما واقعیت امر این است که ابزار رفع اشکال نیز خود شامل کاستیهایی میباشد. زیرا این ابزار قادر به یافتن همه اشکالها نیست، همچنین ممکن است که در هنگام برطرف کردن یک اشکال، اشکالهای جدیدی تولید شود. به علاوه این امکان وجود دارد که حتی مؤلفه های استاندارد سیستم، خود نیز حاوی اشکالهایی باشند. موارد ذکر شده، نیاز به استفاده از ابزارهای پیش بینی اشکال و تحمل اشکال را بیان می کنند. پس به عنوان یک نتیجه کلی باید گفت که یک سیستم به هر چهار ابزار اتکاپذیری نیاز دارد.
اما بررسی میزان اتکاپذیری مبحث دیگری است که باید بررسی شود. میزان اتکاپذیری یک سیستم به دو روش کمی و کیفی قابل مشخص شدن است. که در این میان تزریق اشکال[۳۵]، یکی از متداولترین روشهای کمی میباشد. به فرایند افزودن آگاهانهی اشکال به سیستم برای ارزیابی تحملپذیری آن، تزریق اشکال گفته می شود. به طور کلی روشهای تزریق اشکال به سه روش فیزیکی، نرمافزاری و شبیهسازی شده تقسیم میشوند.
- تزریق اشکال شبیهسازی: در این روش اشکالها بر روی یک مدل شبیهسازی شده از سیستم، تزریق میشوند. از آنجا که این روش معمولاً در فازهای ابتدایی طراحی مورد استفاده قرار میگیرد، میتوان به میزان زیادی هزینه های ساخت سیستم را کاهش داد. زیرا قبل از ساخت نمونه اصلی، تحملپذیری آن در برابر خطا بررسی می شود.
- تزریق اشکال فیزیکی: در این روش، اشکالها بر روی یک پیادهسازی واقعی از سیستم یا یک نمونه واقعی از سیستم، تزریق میشوند. این روش کارایی بالایی دارد زیرا که بجای ارزیابی یک مدل از سیستم، خود سیستم واقعی آزمایش و ارزیابی می شود.
- تزریق اشکال نرمافزاری: در این روشها، اشکالها با کمک یکسری نرمافزارها به سیستم فیزیکی تزریق میشوند.
۲-۴ رهیافتهای تحملپذیری خطا
سه رویکرد عمده برای حل مسئله تحملپذیری خطا عبارتند از: الف)افزونگی ب)آزمایش و اشکالزدایی کامل ج)self-healing، [۵۰] که این رویکردها در محاسبات پوشیدنی استفاده شده اند.
رویکرد اول برای حل این مسئله، استفاده از افزونگی است. فرایند افزونگی به افزودن یکسری مؤلفه ها (سختافزار، نرمافزار، اطلاعات و زمان) به سیستم گفته می شود که در حالت عادی این مؤلفه ها برای عملکرد سیستم اضافی هستند[۵۱]. افزونگی هزینه های فاز تولید محصول را افزایش میدهد و به علاوه تشخیص خطا، نیاز به آنالیز انسانی دارد.بطور کلی افزونگی به چهار دستهی سختافزاری، اطلاعاتی، زمانی و نرمافزاری تقسیم می شود [۴۹][۵۱]. در جدول ۲-۲ به شرح این افزونگیها پرداخته شده است.
- افزونگی سختافزاری: به فرایند تکرار کردن فیزیکی سختافزار به سیستم به منظور تشخیص خطا یا تحمل خطا، گفته می شود. واحدهای سختافزار اضافه شده مانند یکدیگرند و کار اضافهتری را انجام نمیدهند. این روش رایجترین نوع افزونگی است اما اگر در بحث تحملپذیری شبکه های پوشیدنی در برابر خطا، به ویژگیهای کامپیوترهای پوشیدنی دقت نشود، این روش می تواند مناسب نباشد؛ دلیل این امر مصرف انرژی، فضای اشغال شده و هزینه قطعات افزونه است[۵۲]. افزونگی سختافزاری به سه دستهی فعال، غیر فعال و هیبرید تقسیم میشوند.
- افزونگی سختافزاری فعال(پویا): در این روش ابتدا خطا تشخیص داده می شود و سرانجام بعد از مکان یابی خطا، اقداماتی جهت رفع آن صورت میگیرد.
- افزونگی سختافزاری غیرفعال: در این روش پوشانده شدن خطا نسبت به رفع خطا بیشتر مورد توجه قرار میگیرد، بگونهای که با وجود خطا مقادیر صحیحی در خروجی پدیدار می شود.
- افزونگی سختافزاری ترکیبی: با ترکیب افزونگیهای فعال و غیرفعال، افزونگی ترکیبی حاصل می شود.
- افزونگی اطلاعاتی: به فرایند اضافه کردن اطلاعات اضافی به داده های اصلی، افزونگی اطلاعاتی گفته می شود. تکنیکهای این روش قادر به تشخیص و گاه رفع خطا نیز میباشند. معمولاً از این روش برای تحمل خطاهای سختافزاری استفاده می شود.
- افزونگی زمانی: این روش برای در نظر گرفتن تحمل خطا از زمان اضافهتری استفاده می کند. از این روش برای تحمل خطاهای نرمافزاری و سختافزاری استفاده می شود.
- افزونگی نرمافزاری: به فرایند تکرار قسمتی از برنامه یا تمام برنامه، گفته می شود.
انواع افزونگی | ویژگیها | معایب | مزایا | |
۱٫سختافزاری | ۱٫۱- سختافزاری فعال | ۱- قادر به تشخیص خطا، تعیین موقعیت خطا و بازیافت خطا. |
- نیاز به سختافزار اضافی و گران قیمت - مصرف انرژی بیشتر - فضای اشغال شده بیشتر |
- سرعت بالا - توانایی غلبه بر خطاهای سختافزاری |
۱٫۲- سختافزاری غیرفعال |
۱- بجای یافتن خطا آن را میپوشاند. ۲- از روش رأیگیری بر اساس رأی اکثریت استفاده می کنند. |
|||
۱٫۳- سختافزاری ترکیبی |
۱- ترکیب ویژگیهای روش های فعال و غیر فعال. ۲- رایجترین نوع افزونگی سختافزاری. ۳- هزینه های بیشتر نسبت به دو روش فعال و غیرفعال. |
|||
۲٫اطلاعات | ۱- به داده های اصلی اطلاعاتی را اضافه می کند. |
- استفاده از مقدار زیادی بیت اطلاعاتی - نیاز به پردازش بیشتر |
- امکان رفع خطا | |
۳٫زمانی |
۱- تکرار محاسبات در زمان بیشتر. ۲-قادر به کشف خطاهای پایدار و ناپایدار ۳-توانایی تصحیح خطا |
- در کاربردهایی که زمان حیاتی است، قابل استفاده نیست. - نیاز به پردازش بیشتر |
- هزینه کمتر - قابل استفاده شدن در کاربردهایی که زمان کم اهمیتتر از سختافزار است. |
|
۴٫نرمافزاری | ۱- واحدهای نرمافزار تکراری | - غیر عملی بودن در بسیاری از کاربردها مانند کامپیوترهای پوشیدنی | - سادگی |
جدول ۲-۲: رویکرد افزونگی
رویکرد دوم برای حل این مسئله، استفاده از روش آزمایش و اشکالزداییِ[۳۶]کامل برای ساخت سیستمهای قابل اطمینان است. در این روش سطح اطمینان به نحوه آزمایش وابسته است و از طرفی دستیابی به قابلیت اطمینان بالا در یک سیستم پیچیده، پرهزینه و دشوار است. از این گذشته، به دلیل ناهمگن بودن گرههای محاسبات فراگیر و باز بودن سیستم، نمی توان از قبل سیستم را تست کرد.
رویکرد سوم برای حل این مسئله، ساخت سیستمهای self-healing است. سیستمهای self-healing، به صورت جاسازی شده دارای تواناییهای کشف خطا، شناسایی منبع خطا و ریکاوری اتوماتیک خطا میباشند [۵۳][۵۴]. این سیستمها کنترل عملیات را به صورت خودکار انجام می دهند و نیازمند مکانیزم های مختلف بازیافت خطا میباشند. این رویکرد یک گزینهی خوب برای اعمال شدن در سیستمهای محاسباتی بزرگ است. در جدول ۲-۳ مزایا، معایب و سابقه پژوهش رویکردهای رایج مسئله تحملپذیری خطا شرح داده شده است.
رویکرد | مزایا | معایب | سابقه پژوهش |
افزونگی |
۱- پیادهسازی ساده ۲- افزایش قابلیت اطمینان بالا ۳- پیچیدگی پایین(تنها نیاز به یک مکانیزم رأیگیری ساده است.) |
۱- هزینه ساخت(manufacturing) بالا ۲- استفاده بیشتر از منابع (حافظه، انرژی، بهرهوری(از CPU)) ۳- مناسب نبودن برای همه شرایط (به طور مثال پوشیدن حسگر بزرگ دشوار است) |
۱- Hassan Ghasemzadeh و همکاران [۵۵] |
آزمایش و اشکالزدایی |
۱- مناسب برای سیتمهای نرمافزاری ۲- سادگی |
۱- مناسب نبودن برای محاسبات توزیع شده ۲- با توجه به غیرقابل پیش بینی بودن سیستمها، خطاها همواره خود را نشان نمیدهند. |
- |
Self-healing | ۱- با توجه به اینکه wearable computingها برای تست و debug همیشه در دسترس نیستند، این گزینه می تواند در دسترس قرار گیرد. | ۱- طراحی و پیادهسازی دشوار |
۱-Themistoklis Bourdenas و همکاران [۵۶] ۲- Byoung Uk Kim و همکاران [۵۷] |
جدول ۲-۳: رویکردهای رایج حل مسئله تحمل خطا
با توجه به هم ارز بودن سختافزار و نرمافزار مشخص است که بخشهایی از روشهای فوق میتوانند نرمافزاری یا سختافزاری پیاده شوند. معیارهایی مانند هزینه، سرعت، قابلیت ارتقاع، سازگاری با نسل قبلی و… طراح را در تصمیم گیری برای انتخاب سختافزار یا نرمافزار تحت تأثیر قرار می دهند.
۲-۵ جنبه های مختلف تحملپذیری خطا در محاسبات پوشیدنی
شکل ۲-۴ جنبه های مختلف تحملپذیری خطا در محاسبات پوشیدنی را نشان میدهد. این دستهبندیها برای ساماندهی ادامه تحقیق و تفکیک موضوعات ارائه شده است. جنبه های تحملپذیری خطا به دو نوع درون گرهی و برون گرهی تقسیم میشوند. شبکه های حسگر به دو دلیل خرابیهای گره و نقصهای ارتباطی، در برابر خطا آسیبپذیر هستند.
شکل ۲-۴: جنبه های تحمل خطا از نظر معماری یک کامپیوتر پوشیدنی
۲-۵-۱ سختافزار
منظور از خرابیهای سختافزاری بروز خطاهای پایدار در شبکه پوشیدنی است. این گونه از خرابیها کارائی شبکه را کاهش می دهند حتی ممکن است منجر به غیر قابل استفاده شدن زیرساخت ارتباطی شوند. بنابراین باید تکنیکهای پیشگیری از خطا، کشف خطا، جداسازی خطا، تعیین هویت خطا و بازیافت خطا، بررسی و اعمال شوند. در یک شبکه پوشیدنی سنسور از جمله مهمترین قسمت های سختافزاری میباشد. اهمیت کشف و جداسازی سنسورهای معیوب در پژوهشهای زیادی مورد توجه قرار گرفته است. برای این منظور میتوان مراجع[۵۸]، [۵۹] و [۶۰] را ملاحظه کرد. مهمترین مؤلفه در شبکه های پوشیدنی سنسور است، از اینرو قابلیت سیستم به شدت به عملکرد سنسورها وابسته است.به ازای هر سنسوری که معیوب می شود، در شبکه یک نقطهی کور پدیدار می شود که یک ناحیه یا فعالیت مهم را پوشش نمیدهد. بنابراین این امکان وجود دارد که سیستم رویدادهای مهم را از دست بدهد [۶۱]. سنسورها در محیطهای عملیاتی، از مشکلات و خطراتی رنج میبرند، که دلیل این خطرات طبیعت سنسورها است. تعدادی از خطرات که ممکن است باعث عدم کار سنسورها شوند عبارتند از: ۱- آسیب دیدن ناگهانی سنسور ۲- به پایان رسیدن طول عمر باتری ۳- وجود اشتباهات برنامهنویسی در سنسورها ۴- گاهی مکانِ سنسورها، نقاط کور و نواحی غیر پوشش دارند که حیاتی است. ۵- مختل شدن ارتباط سنسورها به سبب تداخل الکترومغناطیسی ۶- کنترل و یا معیوب شدن سنسورها توسط عاملهای غیرمجاز [۶۱].
۲-۵-۱-۱ کشف و جداسازی سنسورهای معیوب
به منظور دستیابی به تحمل خطا در شبکه های پوشیدنی یکی از بنیادیترین کارها کشف و جداسازی سنسورهای معیوب است. در ادامه روشهای مختلف برای شناسایی سنسورهای معیوب توضیح داده میشوند.
رویکرد مقایسه: یک رویکرد عیبیابی کارا، برای تشخیص خطاهای نرم و سخت است. در رویکرد مقایسه، یک کار مشترک به دو گره اختصاص داده می شود و نهایتاً نتایجشان با هم مقایسه می شود. خروجی این آزمایش می تواند صفر(مطابقت نتایج) و یا یک (عدم تطابق نتایج) باشد، لذا این خروجی مبنایی است برای شناسایی گرههای معیوب [۶۲].
به عنوان یک مثال از این رویکرد در [۶۲] یک پروتکل self-diagnosis توزیع شده پویا برای شناسایی گرههای معیوب پیشنهاد شده است. پروتکل مذبور از رویکرد مقایسه استفاده می کند و شامل سه فازِ آزمایش، گردآوری و پخش است. در فاز گردآوری، هر گره سیار نتایج کارهای محول شده به همسایگانش را گردآوری می کند. سپس به منظور عیبیابی، این نتایج را با هم مقایسه می کند تا گرههای معیوب و سالم مشخص شوند. سرانجام، در فاز پخش، همه اطلاعات عیبیابی، از طریق شبکه برای همه گرهها ارسال می شود تا هر گره، یک دید کلی از وضعیت شبکه داشته باشد. هدف این پروتکل این است که به گرههای fault-free اجازه دهد که وضعیت خطای کل گرههای شبکه را شناسایی کنند.
نظارت بر وضعیت گره:در سیستمهای پوشیدنی با نظارت کردن به وضعیت هر گره میتوان خطاها را شناسایی و مکان یابی کرد. با نظارت کردن به وضعیت هر گره مشخص می شود که گره در وضعیت فعال قرار دارد یا غیر فعال. میتوان از دو مؤلفهی کلیدی یعنی میزانِ انرژی باتری و تداخل برای تشخیص وضعیت گرهها استفاده کرد [۵۹] .
شناسایی بر اساس جابجایی و انرژی مصرفی: یک مکانیزم برای کشف گره معیوب است [۵۸]. حالت اول این روش بدین صورت است که گره ناظر بر عضو، هیچ دادهای را تولید و مخابره نمیکند، لذا با کنترل انرژی گره مشخص می شود که گره اصلاً کار نمیکند و خراب است. حالت دوم این روش بدین صورت است که گره ناظر مدام در حال تولید و مخابرهی داده است. در این حالت با کنترل انرژی گره فعالیت گره بیش از حد نرمال تشخیص داده می شود و چنین استدلال می شود که گره معیوب است.
از جمله چالشهای این روش این است که قرائتهای گرههای سنسور، از اعضای بدن برای حرکات مختلف، ممکن است جابجایی و انرژی مصرفی یکسانی نداشته باشند. به عنوان مثال حالتی را در نظر بگیرید که فرد کنترل شده، در حال نواختن گیتار است. او مدام در حال تکان دادن دستانش است در این حالت سنسورهای نصب شده بر دستان او جابجایی زیادی را نشان می دهند لذا با کنترل انرژی مصرفی این سنسورها به دلیل فعالیت بیش از حد نرمالِ گرهها، چنین پنداشته می شود که سنسورهای کنترل کننده دستان، خراب میباشند. اما این سنسورها سالم هستند و داده های درستی را مخابره می کنند. در این سناریو سنسورهای کنترل کننده پاها دادههایی را تولید و مخابره نمیکنند. لذا با کنترل انرژی این سنسورها چنین تشخیص داده می شود که گرهها اصلاً کار نمیکنند و خراب هستند که این تشخیص نیز اشتباه میباشد.
استفاده از داده های جمعآوری شده: روش دیگر به منظور شناسایی گرههای معیوب است؛ روش کار به این طریق است که اگر داده های گردآوری شده توسط یک سنسور از حد پایین و حد بالای آستانه تجاوز کند [۶۳]، آن گره سنسور معیوب است. فرایند شناسایی و جداسازی گرههای حسگر معیوب، براساس داده های جمعآوری شده بخصوص هنگامی که گره سنسور داده های اشتباهی را تولید و مخابره می کند یک مسئله چالشدار است.
به عنوان مثال حالتی را میتوان در نظر گرفت که گره سنسور معیوب است و بجای داده های درست، داده های اشتباه و غلطی را از بدن دریافت می کند. ولی به دلیل اینکه داده های گردآوری شده از حد آستانه تجاوز نکرده اند، سیستم معیوب بودن سنسور را تشخیص نمیدهد و داده های اشتباه را مخابره می کند. که این کار می تواند باعث تفسیر نادرست از فعالیت شخص تحت نظارت شود. لذا با توجه به مطالب ذکر شده میتوان نتیجه گرفت که اگر چه استفاده از حد آستانه به منظور کشف گره معیوب در برخی از سیستمها پیشنهاد می شود ولی این روش به تنهایی کافی نیست.
روش دستهبندی گرههای مجاور: دیگر روش برای کشف گرههای معیوب میباشد [۵۸]. در این روش قرائتهای گرههای مجاور تقریباً برابر و مشابه میباشند. روش کار بدین صورت است که قرائتهای گرههایی که در یک دستهبندی قرار دارند با هم مقایسه میشوند که اختلاف بیش از اندازه این قرائتها نشان دهنده وجود سنسورهای معیوب در دستهبندی است. این روش در سیستمهایی که شامل تعداد زیادی گره میباشند، به خوبی جواب میدهد، این در حالی است که در BSNها تعداد سنسورها اندک میباشد. در مسائل کشف خطا کم بودن تعداد گرههای مجاور، یک چالش مهم است[۵۸]. به بیانی دیگر در محیطهایی مانند BSNها که تعداد سنسورهای کمی وجود دارد، دقت کشف کاهش مییابد. کار [۵۸] این مسئله را مورد مطالعه قرار داده است.
به علاوه یافتن همسایگان صحیح برای تضمین داده ها به منظور کاهش هشدارهای غلط، دیگر چالش است [۵۸] . به عنوان مثال شرایطی را در نظر بگیرید که بر روی هر کدام از دستان شخص کنترل شده، یک سنسور نصب شده و هر دوی این سنسورها به عنوان گرههای مجاور در نظر گرفته میشوند و در یک دستهبندی قرار داده میشوند. حال حالتی را در نظر بگیرید که این فرد با خودکارش در حال نوشتن یک متن است. در این حالت علیرغم اینکه هر دو سنسور به عنوان سنسورهای مجاور در یک دستهبندی قرار گرفتهاند، قرائتهای سنسورهای هر دو دست با هم اختلاف زیادی دارند. لذا اینگونه استنتاج می شود که یکی از سنسورها معیوب است اما اینگونه نیست. بنابراین عملکرد این روش به یافتن همسایگان صحیح بستگی دارد.
۲-۵-۲٫نرمافزار
نرمافزار در سیستمهای کامپیوتری یک نقش کلیدی را ایفا می کند. به واقع محاسبات پوشیدنی همانند سایر سیستمهای کامپیوتری برای انجام عملیات نیازمند نرمافزار میباشند. الگوریتمها و روشهای نرمافزاری مختلفی به منظور تحمل خطا در شبکه های پوشیدنی وجود دارد که در ادامه به آنها پرداخته می شود.
کیفیت داده: از جمله مباحث کلیدی در بخش نرمافزار میباشد. موضوع کیفیت داده ها یک موضوع قدیمی است که در سیستمهای جدید امروزی از جمله سیستمهای پوشیدنی ابعاد جدیدی پیدا کرده است. بطور کلی روشهای مختلف بررسی کیفیت داده ها، به سه دستهی الف)روش ساختارگرا(syntactic) ب)روش نشانهگرا(semantic) ج)روش عملگرا(pragmatic) تقسیم میشوند.
در روش ساختارگرا بیشتر به ساختار داده ها توجه می شود. در روش نشانهگرا برای کیفیت داده چهار معیار ۱-کامل بودن ۲-صحیح بودن ۳-مبهم نبودن و ۴-معنادار بودن، در نظر گرفته می شود. در واقع در این روش دنیای واقعی حوزه مورد بررسی نامیده می شود که سیستم اطلاعاتی یک تصویر از دنیای واقعی است. هر چقدر که تصویر دنیای واقعی بهتر باشد داده ها با کیفیتتر هستند. اما در روش عملگرا برای کیفیت داده شش معیار ۱-مرتبط بودن ۲-به موقع بودن ۳-دقت ۴-در دسترس بودن ۵-مقایسهپذیری و ۶-انسجام، در نظر گرفته می شود.
معیارهای کیفیت داده | تعریف |
کامل بودن | هر پدیده موجود در دنیای واقعی فقط باید توسط یک داده نمایش داده شود. |
صحیح بودن | دادهی سیستم اطلاعات دو پدیده دنیای واقعی را همزمان تفسیر نکند. |
مبهم نبودن | نباید دو پدیده از دنیای واقعی توسط یک داده نمایش داده شود. |
معنادار بودن | هر دادهی سیستم اطلاعاتی حداقل یک پدیده دنیای واقعی را به تصویر بکشد. |
جدول ۲-۴٫ معیارهای کیفیت داده در روش نشانهگرا
معیارهای کیفیت داده | تعریف |
مرتبط بودن | آیا داده های تولید شده برای کاربران آنها با معنی و مفید هستند؟ |
به موقع بودن | به مدت زمان بین تولید داده ها تا دسترسی به آنها مربوط می شود. که با معیار دقت رابطه معکوس دارد. |
دقت | داده ها برای اندازه گیری فعالیتهای مختلف مورد استفاده قرار میگیرند که این امر باید درست برآورد شود. بنابراین در بحث دقت، میزان خطاهای تولید شده در فرایند اندازه گیری مورد توجه است. |
در دسترس بودن | به موضوع میزان در دسترس بودن داده ها و سهولت دسترسی به آنها اشاره دارد. |
قابل مقایسه بودن | یعنی بتوان در دوره های زمانی مختلف مقایسات قابل اطمینانی را ارائه داد. |
انسجام | به این موضوع دلالت دارد که داده های تولید شده توسط منابع مختلف و یا زمان های متفاوت باید با یکدیگر همخوانی داشته باشند و قابل مقایسه باشند. |
جدول ۲-۵٫ معیارهای کیفیت داده در روش عملگرا
خطا در قرائتهای سنسورهای پوشیدنی باعث عدم کیفیت داده می شود. لذا به منظور تأمین کیفیت داده باید وضعیتهای نامطلوب گرهها را در شبکهپوشیدنی کشف و با انجام اقدامات جبرانی اثرات آنها را کم کرد. از اینرو به منظور مدیریت وضعیتهای نامطلوب[۳۷] گرهها در [۶۴] روشی ارائه شده است که در آن قسمت هایی که دارای وضعیت نامطلوبند شناسایی میشوند، سپس مقادیری که دارای خطا هستند با مقادیر پیش بینی شده قبلی جایگزین میشوند.
کیفیت سرویس: یک پارامتر نرمافزاری در شبکه های پوشیدنی میباشد. پشتیبانی از کیفیت سرویس در شبکه های پوشیدنی یک نیاز مهم میباشد. تأخیر، قابلیت اطمینان و قابلیت دسترسی از جمله ویژگیهای کیفیت سرویس شبکه های پوشیدنی است که قابلیت اطمینان، فاکتور غالب در کیفیت سرویس WSNها [۶۱] و شبکه های پوشیدنی است. لذا با تأمین تحملپذیری خطا در شبکه های مذبور میتوان به قابلیت اطمینان و در نتیجه کیفیت سرویس دست یافت.
شفافیت: به عنوان یک فاکتور نرمافزاری مهم در سیستمهای محاسباتی فراگیر بشمار میرود. این درحالیست که سیستمهای مذکور با نشان دادن عکسالعمل در برابر خطاهای مختلف میتوانند شفاف باشند. اما در اینگونه سیستمها افزایش پویایی و پیچیدگی منابع سختافزاری/نرمافزاری و تعامل مکرر بین مؤلفه ها باعث می شود که طراحی قدرت تحمل نقص بسیار چالشانگیز شود [۶۵][۶۶]. از اینرو به منظور دستیابی به شفافیت در [۶۵] و [۶۶] برای محیط محاسباتی فراگیر پویا، یک مکانیسم تحمل خطای خود-تطبیق پیشنهاد شده است که در این رویکرد، مکانیزم مذبور بر طبق انواع مختلف خرابیهای کشف شده به صورت دینامیکی ساخته می شود.
درخواست سرویس: یک بحث نرمافزاری میباشد. در محیطهای محاسباتی فراگیر به دلیل طبیعت متحرک و بازشان، خرابیهای زیادی رخ میدهد. برخی از خطاها در هنگام فرایند درخواست سرویس رخ می دهند. این خطاها بهتر است در هر فرایند درخواست سرویس کشف و بررسی شوند که این مسئله در کار [۶۷] مورد بررسی قرار میگیرد.
کشف سرویس: در محاسبات پوشیدنی و فراگیر همواره به عنوان یک فاکتور نرمافزاری حائز اهمیت بوده است. همزمان با رشد سریع محاسبات فراگیر، فرایند کشف سرویس در این تکنولوژی به یک مسأله داغ تبدیل شده است. لذا فرایند کشف سرویس در پژوهشهای زیادی مانند [۶۸] و [۶۹] مورد توجه قرار گرفته است. در محاسبات سیار و محاسبات پوشیدنی، دستگاهها به دلیل محدودیتهایشان همواره خواستار سرویسهایی هستند، بنابراین در این محیطها پیدا کردن سرویسها ضروری است. با بهره گرفتن از فرایند کشف سرویس، سرویسهای موجود در یک محیط فراگیر شناسایی و مکان یابی میشوند. در چنین محیطهایی معمولاً گرههای ارائه دهنده سرویس سیار هستند، که این امر خطاها و چالشهایی را در فرایند کشف سرویس به همراه دارد. بنابراین فرایند کشف سرویس باید در برابر خرابی مقاوم باشد.
فرایند کشف منبع: قادر به پیدا کردن یک دستگاه ارائه دهنده سرویس است. با توجه به اینکه در محیطهای فراگیر دستگاههای handheld شامل محدودیتهایی از قبیل حافظه و قدرت پردازشی محدود، باتری با طول عمر محدود و قطع اتصال مکرر میباشند، پس دستگاههای مذکور با توجه به محدودیتهایشان نیازمند منابع و سرویسهایی از دیگر دستگاهها میباشند.
اما در محیطهای فراگیر به دلیل طبیعت بیدوام و ad hoc شبکه، نمی توان برای مدت طولانی سرویسهایی را از یک دستگاه معین، دریافت کرد. همچنین همانطور که در بخش ۲-۶ بیان خواهد شد، این امکان وجود دارد که چند دستگاه درخواست یک منبع واحد را بکنند. به علاوه حل مسئله کشف منبع شامل چالشهایی از قبیل زمان جستجوی منبع و معیارهای تطبیق منبع میباشد. از اینرو در [۷۰] رویکردی ارائه شده است که چالشهای مطرح در کشف و جستجوی منبع را مورد توجه قرار میدهد.
۲-۵-۳ انرژی
شبکه های پوشیدنی شامل تعدادی مؤلفه میباشند که برای این مؤلفه ها یک باتری تعبیه شده است. باتریها انرژی لازم برای انجام کارهایی از قبیل: انتقال اطلاعات، پردازش، ذخیرهسازی را فراهم می کنند. به دلیل طبیعت این شبکه ها، معمولاً شارژ مجدد و یا جایگزینی باتری امکان پذیر نیست. به علاوه، برای اینکه کامپیوترهای پوشیدنی قابلیت پوشیده شدن یا کاشته شدن در بدن را داشته باشند، باید از نظر فیزیکی کوچک باشند. بنابراین در طراحی حسگرها، کوچک بودن باتری یک معیار مهم محسوب می شود. با توجه به اینکه مؤلفه برای انجام هر فعالیتی، نیاز به انرژی دارد، پس میتوان به این نتیجه رسید که طول عمر شبکه پوشیدنی تا زمانی است که انرژی باتری گرهها به طور کامل خالی نشده باشد. مطالب ذکر شده بیانگر این واقعیت است که به منظور افزایش دادن طول عمر این شبکه ها، باید از تکنیکهای کاهش مصرف انرژی استفاده کرد. لذا در ادامه پنج تکنیک کاهش مصرف انرژی بیان می شود.
مکانیزمDynamic power level adjustment:به منظور صرفهجویی در مصرف انرژی استفاده می شود [۵۹]. روش کار این مکانیزم به این صورت است که یک برش زمانی به همه گرههای همسایه تخصیص داده می شود. آنگاه گرهی که تمایل به انتقال داده ها دارد وارد وضعیت فعال می شود و بستههایش را با ماکزیمم انرژی انتقال میدهد، در غیر این صورت گره به وضعیت خواب میرود. در وضعیت خواب، گره از مینیمم انرژی استفاده می کند که این میزان انرژی برای دریافت پیامهای hello و پشتیبانی از اتصال، کافی میباشد.
رویکرد استفاده از سنسورهای مستقل: با بهره گرفتن از این رویکرد میتوان مصرف انرژی را کاهش داد [۶۴]. بحث اینکه گرهها به یکدیگر وابسته باشند و یا از همدیگر مستقل باشند، یک بحث مهم در شبکه های پوشیدنی است. برای مثال حالتی را در نظر بگیرید که گرههای A، B و C به یکدیگر وابستهاند. به صورتی که گره B برای ادامه انجام فعالیت نیازمند اطلاعاتی است که توسط گره A برایش ارسال می شود و گره C نیز نیازمند اطلاعاتی است که توسط گره B برایش مخابره می شود. به بیانی دیگر به صورت زنجیروار گره B به A و گره C به B وابسته است. در سناریوی ذکر شده اگر یکی از گرهها معیوب شود، سیستم قادر به ادامه کار نیست و با شکست مواجه می شود. اما در حالتی که گرهها از همدیگر مستقل باشند یعنی اینکه برای انجام ادامه فعالیت نیازمند همدیگر نباشند، خرابی یک گره بر عملکرد دیگر گرهها تأثیرگذار نیست.
در حالتی که سنسورها از یکدیگر مستقل باشند میتوان سنسورهای معیوب را بدون تغییر در ساختار شبکه حذف و یا جایگزین کرد. به علاوه، میتوان به محض کشف سنسورهای خراب، آنها را توسط ایستگاه مرکزی خاموش کرد تا انرژی در کل سیستم ذخیره شود. از اینرو در [۶۴] به منظور کشف و تصحیح وضعیت نامطلوب گرهها از معماری اتصال دستهکننده[۳۸]، استفاده شده است که این معماری استقلال بین سنسورها را حفظ می کند.
کاهش هزینه ارتباطات:دیگر رویکرد برای کاهش مصرف انرژی است [۵۵]. با توجه به اینکه در شبکه های پوشیدنی در فرایند ارتباطات بین گرهها بیشترین میزان انرژی مصرف می شود، میتوان با کاهش هزینه ارتباطات، میزان مصرف انرژی را کاهش داد.
لذا در [۵۵] روشی برای کاهش مصرف انرژی براساس کاهش هزینه ارتباطات به ازای افزایش هزینه سختافزاری ارائه شده است. بدین صورت که بجای ارسال پیوسته، اطلاعات در بافرهایی ذخیره میشوند و در بازههای زمانی مشخصی ارسال میشوند. به بیانی دیگر در این روش ارتباطات گسسته جایگزین ارتباطات پیوسته می شود. بدیهی است در صورتی میتوان از این تکنیک استفاده کرد که سیستم ماهیتاً نیاز به جریان پیوستهی اطلاعات نداشته باشد، به علاوه هزینه مصرف انرژی بخش سختافزاری اضافه شده کمتر از مصرف انرژی بخش ارتباطات باشد.
مکانیزمِ hand-off:بعداز شناسایی و مکان یابی گرههای معیوب، میتوان از این مکانیزمبه منظور تحمل نقص در برابر باتری ضعیف استفاده کرد [۵۹]. هنگامی که انرژی باتری یک گره از حد آستانه پایینتر می آید، آن گره به عنوان گره معیوب در نظر گرفته می شود که در این حالت، سیستم می تواند از مکانیزمِ hand-off استفاده کند. روش کار مکانیزم مذبور به اینصورت است که گره معیوب از میان گرههای مجاورش، گرهی را که بالاترین انرژی را دارد انتخاب می کند، سپس گره انتخاب شده تمام سرویسهای گره معیوب را اجرا می کند.
استفادهی همزمان از تکنولوژیهای مختلف سختافزاری:دیگر رویکرد به منظور کاهش مصرف انرژی، است. روش کار بدین صورت است که در زمانی که یک تکنولوژی برای انجام یک کار به انرژی مصرفی زیادی نیاز دارد میتوان از تکنولوژی دیگری استفاده کرد که همان کار را با مصرف مقدار کمتری انرژی انجام میدهد.
به عنوان مثال میتوان سیستمی را تصور کرد که هر گره برای تبادل اطلاعات مجهز به دو تکنولوژی ارتباطی بلند برد و بلوتوث است. فرض بر این است که تکنولوژی ارتباطی بلند برد نسبت به تکنولوژی بلوتوث انرژی بیشتری را مصرف می کند و می تواند اطلاعات را به مسافت دورتری ارسال کند. در این سیستم اگر هر گرهی بخواهد اطلاعاتش را به مسافتهای دور دست بفرستد می تواند از تکنولوژی ارتباطی بلند برد استفاده کند. ولی اگر گرهی بخواهد اطلاعاتش را برای گرههای مجاورش بفرستد، می تواند به منظور صرفهجویی در مصرف انرژی از تکنولوژی بلوتوث استفاده کند زیرا که بلوتوث انرژی کمتری مصرف می کند.
۲-۵-۴ ارتباطات
در شبکه های پوشیدنی، گرهها توسط پروتکلهای ارتباطی با یکدیگر ارتباط برقرار و تبادل اطلاعات می کنند. اما به دلیل طبیعت این شبکه ها در انتقال اطلاعات و ارتباطات، بیشترین میزان انرژی مصرف می شود. لذا باید تدابیری اندیشید که از ارتباطات و ارسالهای مکرر اطلاعات کاسته شود. از اینرو بحث ارسال داده ها به صورت پیوسته و گسسته مطرح می شود که هر کدام مزایا و معایب خاص خودشان را دارند. همچنین در بحث ارتباطات، در برخی موارد میتوان بدون حذف و جایگزینی گرههای معیوب، از آنها به عنوان گرههای ارتباطی استفاده کرد. بطور کلی بحث ارتباطات با بیان مباحث مهمی از قبیل تداخل، مدیریت جریان و گمشدگی داده ها به یک فیلد حیاتی در شبکه های پوشیدنی تبدیل شده است. در بحث ارتباطات چالشهایی مانند تحمل خطا وجود دارد که باید بررسی شوند.
رسانههای انتقال بیسیم:در شبکه های پوشیدنی انتقال اطلاعات توسط سیگنالها و امواج الکترومغناطیسی صورت میگیرد. به بیانی در شبکه های بیسیم انتقال اطلاعات توسط رسانههای انتقال بیسیم مانند بلوتوث و ZigBee انجام میگیرد. در بحث امواج الکترومغناطیسی هرچقدر فرکانس بالاتر باشد طول موج پایینتر است و برعکس. یعنی امواج با فرکانس بالا توانایی عبور از اجسام سخت مانند دیوار را ندارند. همچنین امواج با فرکانس پایین طول موج بالایی دارند و میتوانند مسافت زیادی را تحت پوشش قرار دهند. جدول ۲-۴ انواع امواج الکترومغناطیسی را به همراه ویژگیهایشان شرح میدهد.
انواع امواج الکترو مغناطیسی | ویژگیها | ||||||||||||||
|
|
||||||||||||||
|
|
||||||||||||||
IR |
|
||||||||||||||
۸۰۲٫۱۵٫۱ |
|
||||||||||||||
۸۰۲٫۱۱ |
|
|
|||||||||||||
۸۰۲٫۱۶ |
|
|
|||||||||||||
|
|
||||||||||||||
|
|
||||||||||||||
جدول ۲-۶: امواج الکترومغناطیسی
گمشدگی داده ها: از جمله مباحث مهم ارتباطات است. عوامل مختلفی از جمله قطعی ارتباط،می تواند باعث اتلاف داده ها شود. قطع ارتباط فرستنده و گیرنده در هنگام ارسال داده ها، حتی در بازه زمانی کوتاه می تواند باعث گمشدگی داده ها شود. در [۷۱] مشکلاتی که منجر به قطع ارتباط و گمشدگی داده ها میشدند توسط سیاستهای آبشاری حل شدند و قابلیت اعتماد با بهره گرفتن از این سیاستها تأمین شد.
دیگر حالت برای گمشدگی داده ها می تواند وضعیتی باشد که ارسال اطلاعات به صورت گسسته صورت میگیرد. برای این کار نیاز به حافظههایی از جمله بافر است تا اطلاعات در آنها ذخیره و در بازههای زمانی معین ارسال شوند. در این حالت امکان دارد که قبل از ارسال اطلاعات، فضای بافر پر شود. بنابراین داده های حس شده توسط سنسورها که قصد ورود به بافر را دارند، به منظور کاهش تراکم نابود میشوند که این امر باعث گمشدگی داده ها می شود. لذا با اعمال تکنیکهای تحمل خطا در سیستم باید مانع گمشدگی داده ها شد.
تداخل و نویز نیز میتوانند باعث گم شدن داده ها شوند [۷۲].از اینرو بعداز شناسایی و مکان یابی گرههای معیوب، میتوان از مکانیزمِ Dynamic power level adjustment[39] به منظور تحمل نقص در برابر تداخل استفاده کرد [۵۹]. روش کار این مکانیزم در بخش۲-۵-۳ شرح داده شد.
نرخ تحویل داده: از جمله پارامترهای مهم در بحث ارتباطات است. در شبکه هایی نظیر شبکه پوشیدنی و شبکه [۴۰]DFT-MSN، دستیابی به نرخ تحویل داده مطلوب اهمیت فراوانی دارد. در چنین شبکه ای به وسیله تکرار میتوان به نرخ تحویل دادهی خوب رسید. اما باید یادآوری کرد که تکرار، باعث مصرف انرژی و افزایش سربار می شود. بنابراین سازش بین نرخ تحویل داده ها و سربار ضروری است [۷۳]. از اینرو به منظور دستیابی به نرخ تحویل داده مطلوب با مینیمم سربار، در [۷۳][۷۴][۷۵] با ارائه چند طرح تحویل داده این مسئله مورد بررسی قرار میگیرد.
مدیریت جریان داده: در ارتباطات از اهمیت بسیاری برخوردار میباشد. با پیشرفت تکنولوژی سیستمهای تعبیه شده، در بسیاری از کاربردها نیاز به مدیریت جریان داده ها([۴۱]DSM) میباشد. مدیریت جریان داده ها باید به روشی توزیع شده و قابل اعتماد فراهم شود. که سطوح قابلیت اعتماد DSM توسط سه بعد ۱)DSM بدون اتلاف و با اتلاف محدود ۲)DSM بدون تأخیر یا با تأخیر محدود ۳)حفظ ترتیب جریان بیرونی و جریان درونی تعریف می شود. بنابراین مدیریت جریان داده ها به صورت قابل اعتماد، برای برخی از کاربردها نظیر telemonitoring بیماران، اهمیت بیشتری پیدا می کند. کار [۷۶] با ارائه یک مدل جریان داده های[۴۲] مطمئن و توزیع شده به بررسی این مسئله می پردازد.
انواع جریان ارسال داده ها: به دو صورت پیوسته و گسسته میباشد. در ارسال پیوسته به محض دریافت داده ها از محیط، بلافاصله برای دستگاه یا شخص دیگری ارسال میشوند. اما در ارسال گسسته، اطلاعات دریافتی در حافظههایی مانند بافر ذخیره میشوند و در زمانهای خاصی به صورت گسسته ارسال میشوند. تصمیم گیری در مورد پیوسته بودن یا گسسته بودن اطلاعات، با توجه به شرایط و سیستم، صورت میگیرد.
۲-۵-۵ معماری
از آنجا که توسعه سیستمهای نرمافزاری تحمل خطا در محیطهای فراگیر با چالشهایی روبرو است، اعمال اصول نرمافزاری، می تواند این چالشها را برطرف کند. مدلهای معماری نرمافزاری مختلفی از جمله client-server و peer to peer وجود دارند که انتزاعاتی را ارائه می دهند. این معماریها به منظور مفید بودن در توسعه و پیادهسازی نیاز به پشتیبانی دارند. سه فاکتور مهم در توسعه سیستمهای فراگیر تحمل خطا، عبارتند از: ۱)کشف سرویسها و منابع جدید به صورت پویا. ۲)ریکاوری شفاف و خودکارِ خرابی. ۳)تعیین تحلیلیِ معماریهای توسعه و استراتژی های تکرار مؤلفه. با توجه به فاکتورهای ذکر شده مشخص می شود که نقش معماری در سیستمهای فراگیر تحملخطا، یک نقش کلیدی است [۷۷].
۲-۶ مدیریت منبع و نحوهی دسترسی به آن
در شبکه های پوشیدنی، به دلیل محدودیتهای گرهها، نیاز به اشتراک گذاشتن یکسری از منابع و سرویسها میباشد. اما در زمانی که چندین گره به صورت متناوب تقاضای دستیابی به منبع به اشتراک گذاشته شده را داشته باشند، مسئله به اشتراکگذاری منبع با چالشهایی همراه است. در واقع این امر همان مسئله انحصار متقابل است که چندین میزبان به منظور دستیابی به منبع به اشتراک گذاشته شده، درخواست ورود به ناحیهی بحرانی را دارند. در سیستمهای توزیع شده راه حلهای زیادی برای حل مسئله MUTEX ارائه شده است اما سیستمهای فراگیر در مقایسه با سیستمهای توزیع شده دارای ویژگیهایی از جمله تحرک و محدودیتهای منبع میباشند که نمی توان مسئله انحصار متقابل را با این راهحلها حل کرد. از اینرو الگوریتمهای پیشین به منظور پذیرفته شدن در شبکه های سیار نیاز به طراحی دوباره دارند.
به طور کلی راه حلهای ارائه شده برای حل مسئله انحصار متقابل به دو دستهی token-based و permission-based تقسیم میشوند. در الگوریتمهای token-based یک توکن منحصر به فرد در بین میزبانان به اشتراک گذاشته می شود، به اینصورت که هر میزبانی که توکن را در دست داشته باشد، اجازهی ورود به ناحیهی بحرانی را دارد. اما در الگوریتمهای permission-based روش کار به اینصورت است که میزبانی که میخواهد وارد ناحیهی بحرانی شود ابتدا باید از طریق تبادل پیام، مجوزهایی را از دیگر میزبانان کسب کند. الگوریتمهای permission-based در مقایسه با الگوریتمهای token-based شامل دو مزیت میباشند. اول اینکه نیازی به پشتیبانی کردن از یک توپولوژی منطقی برای تبادل توکن ندارند. دوم اینکه اگر میزبانی درخواست ورود به ناحیهی بحرانی را نداشته باشد، آنگاه نیاز به منتشر کردن هیچ پیامی نیست. به دلیل محدودیتهای شبکه های فراگیر رویکردهای permission-based مناسبتر هستند [۷۸].
اما مهمترین چالش در رویکردهای permission-based این است که در بین میزبانان تعداد زیادی پیام مبادله می شود. با توجه به اینکه در شبکه های پوشیدنی مبادله زیاد پیامها انرژی زیادی از گرهها را مصرف می کند، باید به دنبال راهحلهایی باشیم که تعداد پیامهای مبادله شده را کاهش دهند. لذا در [۷۸] الگوریتم انحصار متقابلی پیشنهاد شده است که قادر به کاهش تعداد پیامهای مبادله شده است.
۲-۷Self-healing
در شبکه های پوشیدنی به دلیل عوامل گوناگون از قبیل گرم شدن زیاد، رسوب شیمیایی سطح سنسور، توان کم باتری، گرهها دچار مشکلاتی میشوند که این عوامل بر دقتِ قرائتها تأثیر گذار است. در این حالت اولین راه حلی که به ذهن میرسد، تعویض سنسورهای معیوب است. اما اغلب بنا به دلایلی از قبیل هزینه سنسورها و در دسترس نبودن آنها، امکان تعویض سنسورها نیست. نکتهی دیگری که در مورد شبکه های پوشیدنی باید در نظر گرفت، بحث مدیریت این شبکه ها است. در شبکه های پوشیدنی امکان مدیریت شبکه به صورت دستی و توسط افراد خبره نیست لذا مدیریت دستی حتی برای شبکه های حسگر بدنی که مقیاس کوچکی دارند، عملی نیست، بنابراین باید از رویکردهای مدیریت اتوماتیک استفاده شود.
با توجه به اینکه در شبکه های پوشیدنی امکان تعویض سنسورهای معیوب نیست و مدیریت این شبکه ها باید به صورت اتوماتیک صورت گیرد، self-healing اتوماتیک برای رفع این محدودیتها، بهترین گزینه است. مسئله self-healing در پژوهشهای زیادی مانند [۵۷] و [۷۹] مورد بحث و بررسی قرار گرفته است. در رویکردهای Self-healing اتوماتیک، دستگاههای معیوب به صورت اتوماتیک شناسایی میشوند و بوسیلهی پوشش و جداسازی خطاها، عکسالعملهای مناسب انجام داده میشوند [۵۶]. جدول ۲-۵ لیست کارهای انجام شده در زمینه تحمل خطا برای سیستمهای پوشیدنی را نشان میدهد.
معماری | انرژی | ارتباطات | نرم افزار | سخت افزار | سابقه پژوهش |
WeigangWu و همکاران [۷۸] | |||||
Mourad Elhadef و همکاران [۶۲] | |||||
Byoung Uk Kim و همکاران [۵۷] | |||||
Haibin Cai و همکاران [۶۵][۶۶] | |||||
Yang Yongzhi و همکاران [۶۷] | |||||
Themistoklis Bourdenas و همکاران [۵۶] | |||||
Rose Williams و همکاران [۷۱] | |||||
Wenshuan Xu و همکاران [۶۸] | |||||
Moushumi Sharmin و همکاران [۷۰] | |||||
YuWang و همکاران [۷۳] | |||||
Duk-Jin Kim و همکاران [۵۸] | |||||
Sheikh I. Ahamed و همکاران [۶۹] | |||||
Eung Nam Ko[80] | |||||
Yu Wang[75] | |||||
Gert Brettlecker و همکاران [۷۶] | |||||
Guowei Wu و همکاران [۸۱] | |||||
Gabriel E. Arrobo و همکاران [۷۹] | |||||
Hesam Sagha و همکاران [۶۴] | |||||
D.D. Geeta و همکاران [۵۹] | |||||
Reza Sharif و همکاران [۶۰] | |||||
Hassan Ghasemzadeh و همکاران [۵۵] |
جدول ۲-۷: لیست کارهای انجام شده
۲-۸ نتیجه گیری
در این فصل تحقیقات انجام شده در زمینه تحمل خطا برای سیستمهای پوشیدنی مورد بحث و بررسی قرار گرفت. متأسفانه با توجه به اهمیت موضوع، مشخص شد که در این زمینه تحقیقات اندکی صورت گرفته است. این درحالیست که در محاسبات پوشیدنی نیاز به یک چارچوب تحمل خطا ضروری است. لذا در فصل سه یک چارچوب تحمل خطا برای محاسبات پوشیدنی ارائه می شود.
فصل سوم
معماری پیشنهادی
۳-۱ مقدمه
عملکرد صحیح سیستمهایی که بر مبنای آنها تصمیم گیریهای حیاتی صورت میگیرد ضروری است. محاسبات پوشیدنی گونه ای از این سیستمها هستند که امروزه نقش بسیار مهمی را در کاربردهای گوناگون و حساس از قبیل حوزه سلامت ایفا می کنند. به عنوان مثال خطای این سیستم برای سالمندی که به علت کهولت سن تنها زندگی می کند، غیر قابل جبران است به حدی که این خطا می تواند منجر به وقوع حوادث ناگواری شود. در فصل دوم مشخص شد که با وجود اهمیت موضوع تحملپذیری محاسبات پوشیدنی در برابر خطا، در این زمینه تحقیق زیادی صورت نگرفته است. از اینرو با مطالعه کارهای دیگران و بررسی معماریهای موجود، در این فصل یک معماری ارائه می شود. محاسبات پوشیدنی با محدودیتهای فراوانی از قبیل محدودیتهای منبع، مواجه هستند. بنابراین در معماری ارائه شده به منظور غلبه بر محدودیتهای مذکور، از محاسبات موبایل و محاسبات ابری استفاده می شود. عملکرد صحیح سیستمهای استفاده کننده از این معماری، یک چالش است. برای حل چالش ذکر شده نیاز به یک چارچوب تحمل خطا برای این معماری است، که این چارچوب تحمل خطا در این فصل ارائه می شود.
۳-۲ معماری پیشنهادی
با مطالعه کارهای انجام شده و بررسی معماریهای ارائه شده در رابطه با محاسبات پوشیدنی نیاز به وجود یک معماری جامع، احساس می شود. معماری که بتواند نواقص معماریهای پیشین را برطرف سازد. همچنین بتواند تمام معماریهای پیشین را پشتیبانی کند، به بیانی قادر به انجام وظایف معماریهای پیشین باشد. از اینرو با توجه به نقاط ضعف و قدرت معماریهای ارائه شده، در این بخش یک معماری تحملپذیر در برابر خطا برای محاسبات پوشیدنی ارائه می شود. این معماری از سه فناوری محاسبات ابری، محاسبات سیار و محاسبات پوشیدنی بهره میبرد. شکل ۳-۱ معماری پیشنهادی را نشان میدهد، که ترتیب لایه ها در این معماری بیانگر این است که هر لایه خدماتی را از لایهی پایینی خود میگیرد.
محاسبات پوشیدنی[۴۳] |
محاسبات موبایل[۴۴] |
محاسبات ابری[۴۵] |
شکل ۳-۱: یک معماری پیشنهادی برای محاسبات پوشیدنی
این معماری سه لایهای در ادامه توضیح داده می شود. لایهی محاسبات پوشیدنی بالاترین لایه در این معماری است. این لایه شامل گرههای بدن[۴۶] و ارباب[۴۷] است. Body Node اطلاعات بدست آمده از بدن جاندار را میگیرد و به Master Node میفرستد. ممکن است سنسورهای تعبیه شده در Body Node پردازشی جزئی را بر روی اطلاعات حس شده انجام دهند، از طرفی هم ممکن است این سنسورها اصلاً پردازشی را انجام ندهند. برای مثال یک سنسور دما، پردازشی را انجام نمیدهد اما برخی از سنسورهای حرکتی از قبیل سنسور mpu-9150، دارای یک واحد پردازش حرکت دیجیتال[۴۸] است که برخی محاسبات پایه را انجام میدهد. به هرحال لایه محاسبات پوشیدنی به منظور گرفتن خدمات بیشتر، اطلاعاتی را که دارد به لایهی پایینی خود میدهد.
لایهی محاسبات سیار به علت داشتن سختافزار و نرمافزار پیچیدهتر نسبت به لایهی بالایی خود، اطلاعاتِ ارسالی توسط لایهی بالایی را میگیرد و بر روی آنها پردازشهایی را در حد توان خود انجام میدهد، سپس می تواند این اطلاعات را یا در حافظه خود یا در ابر ذخیره کند. به هرحال این لایه برای گرفتن خدمات بیشتر، اطلاعاتش را ممکن است به ابر بفرستد.
لایهی رایانش ابری پایینترین لایه در این معماری میباشد، این لایه اطلاعاتِ ارسالی را از لایهی محاسبات سیار یا Master Node میگیرد و با توجه به مزایای منحصربفرد ابر، می تواند خدمات ِزیادی را به لایه های بالایی خود بدهد. محاسباتِ سنگین، ذخیرهسازی داده های حجیم، ارتباط با پزشکانِ دوردست و بسیاری از خدماتِ دیگر، همگی از خدمات این لایه میباشند.
نتایج فصل بعد نشان میدهد که این معماری با فراهم کردن یک محیط محاسباتی قدرتمند می تواند در زمینه های حساس و گوناگونی از جمله حوزه سلامت و درمان از راه دور بیماران مورد استفاده قرار گیرد. یک پیکربندی ممکن است به این صورت باشد که شبکه ای متشکل از رایانههای پوشیدنی[۴۹] بر بدن جاندار پوشیده می شود که این رایانه ها بسیار کوچک و کم حجماند؛ وظیفه آنها جمعآوری اطلاعاتی راجع به علائم حیاتی بدن است، سپس آنها این اطلاعات را به یک گره سیار ارسال می کنند، این کامپیوتر سیار می تواند این اطلاعات را ذخیره و پردازش کند و همچنین می تواند با محیط ابری ارتباط برقرار کند و از مزایای منحصربفرد ابرها استفاده کند. شکل ۳-۲ عناصر تشکیل دهنده این معماری را بصورت شماتیک نشان میدهد.
شکل ۳-۲: طرح کلی معماری پیشنهادی
این شبکه حسگر بدنی از تعدادی گره سختافزاری تشکیل شده است که هر کدام از این گرهها به وسیله جاندار پوشیده یا بر روی ماشین نصب میشوند. در این تحقیق، گرههای پوشیدنی به دو دستهیBody Node و Master Node تقسیم شده اند.
گرههای Body Node دارای اجزای سختافزاری بسیار سادهای هستند. مطابق شکل ۳-۳ هرBody Node شامل پنج قسمتِ حسگر[۵۰]، واحد ریزکنترل کننده[۵۱](MCU)، فرستنده[۵۲] ، گیرنده[۵۳] و باتری است.
- حسگر:طبق وظیفه از پیش تعیین شدهاش اطلاعات را از بدن جاندار میگیرد.
- MCU: کنترل عملیات، مدار و راه اندازی سختافزارها را در یک Body Node بر عهده دارد.
- فرستنده: اطلاعات محیطی دریافتی بوسیله حسگرها را، به مقصد مورد نظر که میتواندMaster Node یا Mobile Node باشد، ارسال می کند.
- گیرنده: برای برقراری ارتباط، تشخیص سلامت گرههای Master Node یا Mobile Node و همچنین گرفتن فرمان از آنها می تواند مورد استفاده قرار گیرد.
- باتری: انرژی تمام ماژولهای Body Node را تأمین می کند.
فرستنده باتری |
|
MCU | |
گیرنده | |
سنسور |
شکل ۳-۳: معماری سختافزاری یکBody Node
گرههای Master Node، اطلاعاتی که توسط Body Nodeها ارسال شده است، را میگیرند و پردازش جزئی را بر روی این اطلاعات انجام می دهند، سپس نتایج را به Mobile Node ارسال می کنند. این گرهها نیز دارای سختافزار پیچیدهای نیستند. مطابق شکل ۳-۴ هرMaster Node شامل چهار قسمتِ گیرنده[۵۴]، پردازش سبک[۵۵] ،فرستنده[۵۶] و باتری است. انرژی تمامی ماژولهای Master Node را باتری تأمین می کند. گیرنده اطلاعات ارسالی توسط Body Nodeها را دریافت می کند و همچنین وضعیت سلامت Mobile Node را چک می کند. سپس بخش پردازش سبک بر روی اطلاعات دریافتی از Body Nodeها یک پردازش جزئی را انجام میدهد. در پایان، فرستنده اطلاعات تولید شده توسط پردازش سبک را بهMobile Node ارسال می کند. شایان ذکر است که در شرایط خاص این واحد توانایی ارتباط با ابر را دارد.
در شرایطی که Mobile Node بنا به هر دلیلی قادر به انجام وظایفش نباشد، ارتباط لایهی محاسبات پوشیدنی با ابر قطع می شود. لذا به منظور تحمل این خطا، Master Node خود مسئولیت ارتباط با ابر را بر عهده میگیرد. اما واقعیت امر این است که ارتباط Master Node با ابر متفاوتتر از ارتباط Mobile Node با ابر است، زیرا فلسفهی طراحی Master Node بر مبنای پیچیده نبودن و کم حجم بودن است. با توجه به نکتهی فوق Master Node فاقد نمایشگر، پردازشگر قوی و فاقد قابلیت نصب نرمافزارهای پیشرفته است. به بیانی سادهتر Master Node به دلیل محدودیتهای سختافزاری و نرمافزاریاش نمیتواند جانشین Mobile Node شود و وظایف Mobile Node را انجام دهد. پس ارتباطMaster Node با ابر صرفاً برای آگاهسازی ابر از معیوب بودن Mobile Node است.
فرستنده | |
پردازش سبک | |
گیرنده |
باتری
شکل ۳-۴: معماری سختافزاری یکMaster Node
گرهMobile Node، اطلاعاتی را که توسط Master Nodeها یا Body Nodeها ارسال شده اند را میگیرد و بر روی آنها پردازش متوسطی را انجام میدهد، سپس نتایج را به یک ابر ارسال می کند. Mobile Node به مراتب دارای سختافزار نسبتاً پیچیدهای است. مطابق شکل ۳-۵، هر Mobile Node دارای حداقل چهار قسمتِ گیرنده، پردازش متوسط[۵۷] ، فرستنده و باتری است. اصول عملکرد این واحد بدین شکل میباشد که گیرنده اطلاعات ارسالی توسط Master Nodeها یا Body Nodeها رادریافت می کند، سپس بخش پردازش متوسط بر روی آنها یک پردازشِ معمولی را انجام میدهد. فرستنده نیز در آخر، این اطلاعاتِ تولید شده توسط لایهی پردازش متوسط را به ابرها ارسال می کند. لازم به ذکر است که انرژی تمامی ماژولهای Mobile Node توسط باتری تأمین می شود.
باتری
فرستنده | |
پردازش متوسط | |
گیرنده |
شکل ۳-۵: معماری سختافزاری یکMobile Node
در این تحقیق پردازشها به چهار دسته مختلف تقسیم میشوند. در ادامه به منظور درک بهتر، انواع مختلف پردازشهای موجود در این معماری سه لایهای شرح داده میشوند.
- پردازش جزئی: به تمامی پردازشهایی که توسط MCU انجام میگیرد، گفته می شود. تبدیل داده های آنالوگ حس شده به دیجیتال، همچنین عملیات پردازشی سنسور ۹۱۵۰ که زوایای اویلری را انجام میدهد، نمونههایی از پردازش جزئی میباشند.
- پردازش سبک: قدرت پردازشگر Master Node از MCU بیشتر است اما این پردازشگر بسیار ضعیفتر از پردازشگر Mobile Node میباشد، با توجه به نکتهی ذکر شده، به همه پردازشهایی که توسط پردازشگر Master Node انجام میگیرد، پردازش سبک گفته می شود. بررسی کیفیت داده ها، مدیریت Body Nodeهای افزونه و پردازش داده های دریافت شده از Body Nodeها نمونههایی از پردازش سبک میباشند.
- پردازش متوسط: پردازنده Mobile Node قدرتمندتر از پردازندهی Master Node و بسیار ضعیفتر از ابر است. از اینرو این پردازنده نسبت به لایه های کامپیوترهای پوشیدنی و ابر پردازش متوسطی را انجام میدهد. به بیانی دیگر به کلیه پردازشهایی که توسط Mobile Node انجام میگیرد، پردازش متوسط گفته می شود.
- پردازش سنگین: به تمامی پردازشهایی که توسط ابر انجام میگیرد، گفته می شود.
در ادامه مشاهده خواهد شد که معماری سه لایهای ارائه شده با قابلیت پشتیبانی از کارها و معماریهای دیگران، یک معماری جامع است.
در حوزه سلامت یک معماری سه لایهای موجود میباشد که محققان بسیاری از آن بهره بردهاند.برای مثال میتوان مراجع[۸۲]،[۴۸] و[۸۳] را مشاهده کرد. این محققان در تحقیقاتشان اسامی لایه ها و برخی جزئیات را مطابق تفسیر خودشان تعریف کرده اند، این در حالیست که در اکثر این تحقیقات اصل مفهوم مشترک است. لذا در ادامه به نمایندگی از این تحقیقات، یک تحقیق مورد بررسی قرار داده می شود.
مطابق شکل ۳-۶ در [۸۴] یک معماری سه لایهای ارائه شده است. لایهی یک [۵۸]WWBAN، لایهی دو [۵۹]PS و لایهی سه [۶۰]MS میباشد.
لایهی یک از تعدادی سنسور تشکیل شده است که قابلیت حس کردن، پردازش و ارسال اطلاعات را دارند. لایهی دو یک سرور شخصی است که برنامه های کاربردی را اجرا می کند، دستگاه این لایه می تواند یک PDA، گوشی موبایل یا یک کامپیوتر خانگی باشد. این لایه اطلاعات ارسالی از لایهی یک را میگیرد و وضعیت سلامت کاربر را به وی گزارش میدهد. سرانجام اگر یک کانال ارتباطی به MS موجود باشد، PS می تواند گزارشهایی را به لایهی سه بفرستد تا سرور پزشکی این لایه، اطلاعات سلامت بیمار را در پروندهی پزشکی او ثبت کند. اما اگر بین لایهی دو و سه لینکی موجود نباشد، آنگاه PS باید قادر به ذخیرهسازی داده ها به صورت محلی باشد تا در زمانیکه لینک بین این دو لایه برقرار شد، این داده ها را برای لایه سه ارسال کند. در نهایت، آخرین لایه یعنی لایه سوم، شامل سرورهای پزشکی است.
شکل ۳-۶: یک معماری برای نظارت بر سلامت [۴]
در معماری فوق گرههای لایهی یک مدام اطلاعات حس شده خود را به لایهی دو میفرستند، که این کار باعث افزایش حجم داده های خام و پردازش نشده در لایهی دو می شود. این در حالیست که معماری سه لایهای ارائه شده ما، با بهره گیری از Master Node مشکل فوق را حل می کند. در واقع Master Node اطلاعات خام و پردازش نشده را از Body Nodeها میگیرد و بر روی آنها پردازشی را انجام میدهد، سپس نتایج پردازش را به لایهی دو میفرستد.
در معماری فوق، اینترنت تنها مسئول برقراری ارتباط بین لایهی دو و سه است. این در حالیست که در لایهی سه معماری ما، محاسبات ابرین قرار دارد. به بیانی نتنها لایهی سه معماری ما قادر به انجام تمام کارهای لایهی سه معماری فوق است، بلکه چندین برابر قویتر از لایهی سوم معماری فوق است؛ که دلیل این امر قدرت و ویژگیهای ذاتی محاسبات ابری است. به بیانی دیگر در معماری ما، محاسبات ابری محدودیتها و فقر محاسبات پوشیدنی و محاسبات سیار را برطرف میسازد. در واقع معماری سه لایهای ارائه شده ما، علاوه بر پشتیبانی کردن از معماری [۸۴]، قادر به حل مشکلات آن نیز میباشد؛ که این قضیه جامع بودن معماری ما را اثبات می کند.
همچنین برخی محققان در معماری خود از یک ایستگاه مبنا[۶۱] استفاده می کنند. در ادامه یک نمونه از این معماری مورد بررسی قرار میگیرد. شکل ۳-۷ معماری ارائه شده در [۸۱] را نشان میدهد. در این معماری، Biosensorها اطلاعات حس شده خود را برای گره کنترل که می تواند گوشی موبایل یا PDA باشد، ارسال می کنند. در نهایت گره کنترل، از طریق ایستگاه مبنا، این اطلاعات را برای سرور پزشکی ارسال می کند.
شکل ۳-۷: یک معماری مبتنی بر ایستگاه مبنا [۸۱]
در معماری فوق، Biosensorها مستقیماً دادههایشان را برای گره کنترل میفرستند. این در حالیست که در معماری ما، Master Nodeها ابتدا پردازشی را بر روی اطلاعات انجام می دهند و سپس آنها را برای Mobile Node ارسال می کنند. همچنین در معماری فوق گره کنترل باید اطلاعاتش را از طریق ایستگاه مبنا به سرور پزشکی ارسال کند. این در حالیست که در معماری ما، گره Mobile Node بدون هیچگونه واسطهای اطلاعاتش را به ابر ارسال می کند. مهمترین مزیت معماری ما استفاده از ابر است، بگونهای که میتوان داده های حس شده را در ابر ذخیره کرد و یا آنها را با قدرت بالا، پردازش کرد.
۳-۳ یک چارچوب تحمل خطا برای محاسبات پوشیدنی
در ادامه و در این فصل قابلیت اطمینان معماری سه لایهای ارائه شده، مورد بحث و بررسی قرار میگیرد. قابلیت اطمینان در سیستمهایی با کاربردهای حساس، یک نیاز حیاتی بوده و این نوع سیستمها باید طوری طراحی شوند تا بتوانند با وجود خرابی به وظیفهی خود به طور مناسب ادامه دهند؛ از اینرو اگر معماری پیشنهادی ارائه شده در برابر خطا تحملپذیر نباشد ممکن است مشکلات جبرانناپذیری را به همراه داشته باشد بنابراین برای عملکرد صحیح این معماری، نیاز به یک چارچوب تحمل خطا هست که در ادامه ارائه خواهد شد.
۳-۳-۱ Body Nodeها
در گره Body Node هر یک از پنج قسمت ( باتری، حسگر، MCU، فرستنده و گیرنده) ممکن است به سبب خطاهای پایدار، خراب شوند. وجود خطای پایدار در باتری برابر است با از کار افتادن گره Body Node، به علاوه اگر قسمت حسگر خراب شود، آنگاه دیگر گره نمیتواند اطلاعاتی را از بدن جاندار حس کند. همچنین اگر MCU که قلب Body Node است به سبب خطاهایی از قبیل توقف مطلق[۶۲] و hang، قادر به ادامه عملیات نباشد، آنگاه گره Body Node مثل کامپیوتری میماند که CPU آن خراب شده و عملاً نمیتواند کاری انجام دهد. اگر ماژول فرستنده دچار خرابی سختافزاری شود، Body Node قادر به ارسال اطلاعات حس شده به Master Node یا Mobile Node نیست. همچنین در این شرایط خود گره Body Node، توسط Master Node یا Mobile Node قابل شناسایی نیست. زیرا Body Node برای ارتباط برقرار کردن و دیده شدن حتماً باید پیام «سلام ارباب» را برای Master Node یا Mobile Node ارسال کند. نهایتاً در صورت خرابی ماژول گیرنده، Body Node دیگر نمیتواند صحت و سلامتی Master Node و Mobile Node را تشخیص دهد. در بخش مدیریت خطاها در شبکه، به تفضیل شرح داده می شود که طراحی و پیادهسازی گرههای شبکه را میتوان به طریقی انجام داد که گرههای بالاتر وظیفه چک کردن سلامت شبکه را بر عهده داشته باشند لذا شاید اینگونه استنباط شود که Body Node می تواند فاقد گیرنده باشد. اما واقعیت امر این است که وجود گیرنده در Body Node الزامی است. در واقع گره بالایی درخواست ایجاد ارتباط را به گره پایینی خود میدهد و این درخواست توسط گیرنده گره پایینی دریافت می شود. پس در صورت نبود گیرنده یا خرابی گیرنده، دیگر ارتباطی بین Body Node باMaster Node و Mobile Node ایجاد نمی شود. به بیانی دقیقتر، Body Node بخاطر عدم دریافت پیام «سلام بچهها» و «سلام Body Node» قادر به برقراری ارتباط با Master Node و Mobile Node نیست. با استناد به موارد بیان شده میتوان به این نتیجه رسید که خرابی هر یک از پنج ماژول تشکیل دهنده Body Node، می تواند منجر به خطای پایدار گردد که در این صورت در کل شبکه یک نقطهی کور پدیدار می شود که یک ناحیه را پوشش نمیدهد.
لازم به ذکر است، پیام «سلام بچهها» که توسط Master Node برای Body Nodeها ارسال می شود، فقط برای آگاهسازی Body Nodeها از سلامت Master Node نیست. بلکه از این پیام برای برقراری ارتباط بین Master Node و Body Nodeهایش نیز استفاده می شود. مکانیزم کار بدین صورت است که Master Node به منظور برقراری ارتباط با Body Node یک پیام «سلام بچهها» را که حاوی تمام مشخصات Master Node است را برای Body Node ارسال می کند. با دریافت این پیام از سوی Body Node دو حالت پیش می آید: حالت اول: Body Node تمایل به برقراری ارتباط دارد، پس به منظور برقراری ارتباط، پیام «سلام ارباب» را که حاوی تمام مشخصات گره Body Node است را برای Master Node ارسال می کند؛ که با دریافت این پیام از سوی Master Node ارتباط برقرار می شود. حالت دوم: Body Node تشخیص میدهد که Master Node بیگانه است از اینرو خواهان برقراری ارتباط نیست، پس در جواب پیام ارسالی از سوی Master Node، عکسالعملی نشان نمیدهد.
در بحث مکانیزم ارتباط ذکر شده، Master Node باید گره فعال باشد و Body Nodeهای موجود در شبکه را جستجو و پیج کند. زیرا اگر به منظور برقراری ارتباط، هر Body Node خود قصد ارسال پیام «سلام ارباب» را داشته باشد، هر لحظه این احتمال وجود دارد که ارتباط Master Node با Body Node قطع شود، که برای برقراری مجدد ارتباط باید Body Node در فواصل زمانی مشخص به طور مثال هر ۱۵ ثانیه پیامی را برای Master Node ارسال کند. با توجه به اینکه در Body Nodeها ارتباطات و ارسال پیام باعث مصرف انرژی زیادی میشوند، این کار توصیه نمی شود. پس Master Node باید گره فعال باشد و در فواصل زمانی کوتاه و معین به طور مثال هر ۱۵ ثانیه یکبار پیام «سلام بچهها» را در کل شبکه پخش کند تا اگر Body Node افزونهای تازه به شبکه اضافه شده یا اگر Body Nodeی ارتباطش قطع شده، ارتباط آنها را برقرار کند.
در لحظهای که ارتباط بین Body Node و Master Node برقرار است، هر لحظه این امکان وجود دارد که به دلایل مختلف، این ارتباط از بین برود؛ از اینرو Master Node در فواصل زمانی مشخص پیام «سلام بچهها» را در کل شبکه پخش می کند، سپس Body Nodeی که ارتباطش با Master Node از بین رفته، دوباره به منظور برقراری مجدد ارتباط، پیام «سلام ارباب» را برای Master Node ارسال می کند. با دریافت این پیام از سوی Master Node، مجدداً ارتباط برقرار می شود.
علاوه بر مطالب ذکر شده، در مکانیزم ارتباط دهی باید مبحث مکانیزم خاموشی فعال[۶۳] مورد توجه قرار گیرد. مکانیزم خاموشی فعال بیانگر این است که بعد از برقراری ارتباط بین Master Node و Body Node، امکان دارد که این دو گره تا مدتی دادهای برای ارسال به یکدیگر نداشته باشند. در حالت فوق با وجود اینکه دو گره Master Node و Body Node برای یکدیگر دادهای ارسال نمیکنند، نباید ارتباط بین دو گره قطع شود. به بیانی مکانیزم خاموشی فعال با مصرف انرژی کم، ارتباط بین دو گره را که دادهای برای هم نمیفرستند را حفظ می کند. لازم به ذکر است که مکانیزم خاموشی فعال در بلوتوث و ماژول RN42، پیش بینی شده است.
همچنین در مکانیزم برقراری ارتباط باید مسئله احراز هویت مورد توجه قرار گیرد. برای درک بهتر میتوان حالتی را تصور کرد که در آن، دو فرد تحت کنترل با نامهای سارا و سوزان در کنار یکدیگر قرار گیرند. در این صورت Master Nodeی که بر بدن سارا پوشیده شده است به منظور برقراری ارتباط با Body Nodeهایش، پیام «سلام بچهها» را میفرستد. در این سناریو همه Body Nodeهایی که بر بدنهای سارا و سوزان پوشیده شده اند، با پیام «سلام ارباب» به Master Node جواب می دهند و با آن ارتباط برقرار می کنند، که این خطا در برقراری ارتباط، منجر به شکست سیستم می شود.
به منظور تحملپذیر کردن سیستم در برابر این خطا باید از اعتبار سنجی استفاده کرد. در این تحقیق به منظور احراز هویت، تکنیکی تحت عنوان «رمز شب» ارائه می شود. روش کار تکنیک مذکور بدین شرح است که در هر شبکه پیامهای Master Nodeها و Body Nodeها انحصاری آن شبکه هستند. برای درک بهتر میتوان هر شبکه را بسان یک پادگان نظامی در نظر گرفت که در آن Master Nodeها و Body Nodeها، فرماندهان و سربازان آن پادگان میباشند. در این سناریو هر پادگان یک رمز شب منحصر به فرد دارد که فرماندهان و سربازانش، آن رمز را از قبل میدانند، که به منظور شناسایی نیروهای خود از دشمن آن را مورد استفاده قرار می دهند. پس با در نظر گرفتن تکنیک «رمز شب» در مثال سارا و سوزان، زمانیکه Body Nodeهای پوشیده شده بر بدن سوزان، پیام «سلام بچهها» را دریافت می کنند، بلافاصله متوجه اشتباه بودن رمز شب میشوند و در جواب این پیام هیچگونه عکسالعملی نشان نمیدهند.
برقراری ارتباط بین Body Node و Master Node به دو طریق قابل انجام است. در ادامه به شرح هر دو حالت پرداخته می شود.
شکل ۳-۸: برقراری ارتباط بین Body Node و Master Node در حالت اول
حالت اول در شکل ۳-۸ نشان داده شده است. در این حالت در تمامی شبکه ها پیامهای «سلام بچهها» و «سلام ارباب» مشترک میباشند. در گام اول این دو پیام بین Master Nodeها و Body Nodeها تبادل می شود، سپس در گام بعدی، یعنی فرایند برقراری ارتباط، به منظور احراز هویت از تکنیک رمز شب استفاده می شود. بدین صورت که اگر رمز شب ارسال شده از سوی Body Node صحیح باشد، ارتباط برقرار می شود و در غیر اینصورت ارتباط برقرار نمی شود. اما حالت اول به دو دلیل توصیه نمی شود.
اولاً، شرایطی را میتوان در نظر گرفت که ۱۰ فرد که با چنین شبکه هایی تجهیز شده اند در کنار یکدیگر قرار گیرند. به عنوان مثال در این حالت هر ۶۰ ثانیه یکبار هر Master Node پیام «سلام بچهها» را میفرستد و سپس درخواست «رمز شب» می کند. در این فرایند هر Body Node باید یک پبام «سلام ارباب» و یک پیام حاوی رمز شب را ارسال کند، یعنی در مجموع به ازای هر بار درخواست Master Node، Body Node باید ۲ پیام، ارسال کند. حال اگر این افراد به مدت ۲۰ دقیقه در کنار یکدیگر قرار گیرند، هر Body Node باید ۴۰۰ پیام را برای Master Nodeها ارسال کند که از این ۴۰۰ پیام، ۴۰تای آن مفید بوده و بقیه متعلق به Master Nodeهای دیگر افراد است. حالت اول مناسب نیست زیرا Body Nodeها اطلاعات زیادی را ارسال می کنند، این در حالیست که فرایند ارسال اطلاعات در Body Nodeها انرژی زیادی را مصرف می کند.
ثانیا، در حالت اول پیامهای «سلام بچهها» و «سلام ارباب» در تمامی شبکه ها مشترک است و این در حالیست که یکی از کاربردهای پیام «سلام بچهها»، آگاهسازی Body Node از سلامت Master Node است. در سناریوی سارا و سوزان میتوان حالتی را تصور کرد که Master Node سوزان خراب شود. در این حالت Body Nodeهای بدن سوزان پیام «سلام بچهها» را که توسط Master Node سارا ارسال شده است را میگیرند و فکر می کنند که Master Nodeشان سالم است و مدام برای آن اطلاعات ارسال می کنند. تا زمانیکه این Body Nodeها، پیام «سلام بچهها» را از Master Node سارا میگیرند، متوجه خرابی Master Node سوزان نمیشوند. لذا حالت اول به دلیل مشترک بودن پیامها در بین تمام شبکه ها، مناسب نیست.
شکل ۳-۹: برقراری ارتباط بین Body Node و Master Node در شبکه A و در حالت دوم
حالت دوم در شکل ۳-۹ نشان داده شده است. این حالت مشکلات مطرح شده در حالت اول را ندارد. در این حالت در هر شبکه، Master Node و Body Nodeهایش از دو پیام که انحصاری و منحصر به فرد هستند، استفاده می کند. لازم به ذکر است که با این دو پیام هم میتوان Body Nodeها را از سلامت Master Nodeشان آگاه کرد و هم میتوان این دو پیام را به عنوان رمز شب، برای احراز هویت مورد استفاده قرار داد.
در ادامه برای درک بهتر از یک مثال استفاده می شود. برای سه فرد با نامهای A، B و C که در مجاور هم و مجهز به شبکه های پوشیدنی هستند، ترتیب پیامهای رمز شب بدین صورت است که شبکه فرد A شامل دو پیام «سلام بچهها ۱» و «سلام ارباب ۱»، شبکه فرد B شامل دو پیام «سلام بچهها ۲» و «سلام ارباب ۲» و شبکه فرد C شامل دو پیام «سلام بچهها ۳» و «سلام ارباب ۳» است. Master Node هر شبکه به همراه Body Nodeهایش این رمز شبها را از قبل میدانند. لذا اگر Master Node شبکه A پیام «سلام بچهها ۱» را منتشر کند، Body Nodeهای شبکه های B و C با دریافت این پیام متوجه اشتباه بودن رمز شب میشوند و هیچگونه عکسالعملی نشان نمیدهند. این امر باعث می شود که هر Body Node، تنها به Master Node خودش جواب دهد، پس با این کار هیچ یک از Body Nodeها اطلاعات اضافه و بیهودهای را ارسال نمیکنند. به بیانی در حالت دوم تعداد ارسالها توسط Body Nodeها کاهش مییابد، که این کاهش ارسال سبب کاهش مصرف انرژی می شود. از طرفی، اگر یک Master Node خراب شود، آنگاه بعد از گذشت مدت زمانی از پیش تعیین شده، Body Nodeهایش به خاطر عدم دریافت پیام مناسب، متوجه این خرابی میشوند. نتیجتاً، این روش مشکلات حالت اول را رفع می کند.
خطای نرمافزار Body Nodeها: ذکر این نکته حائز اهمیت میباشد که در خرابی یک نرمافزار عاملهای مختلفی دخالت دارند. از جمله این موارد این است که اگر نرمافزاری بسیار پیچیده باشد، احتمال خرابی آن نیز زیاد می شود. همچنین اگر نرمافزاری به صورت مستقیم توسط کاربر مورد استفاده قرار بگیرد، کاربر می تواند به دلایل گوناگونی از جمله آماتور بودن و نداشتن دانش کافی، آن نرمافزار را دچار آسیب کند. به علاوه، برنامه های بداندیش دیگر تهدیدات برای نرمافزارها میباشند که سعی می کنند با ایجاد تغییر در کد برنامه ها، آنها را دچار آسیب کنند.
نرمافزار Body Nodeها بسیار ساده است، بطوریکه پیچیده نبودن این نرمافزارها احتمال خرابیهای نرمافزاری را بسیار کم می کند. همچنین کاربران Body Nodeها به صورت مستقیم با این نرمافزارها کار نمیکنند، زیرا ماژولهای سختافزاری Body Nodeها، اپراتور این برنامه ها میباشند. از این جهت کاربران نمی توانند به برنامه ها صدمه بزنند. از مطالب بیان شده میتوان اینگونه استنتاج کرد که در کامپیوترهای پوشیدنی برنامه ها و الگوریتمهای ساده در حافظههای فقط خواندنی ROM[64] قرار میگیرند، که نرمافزارها و برنامه های موجود در این حافظهها، توسط کاربران آماتور یا برنامه های بداندیش قابل تغییر نیستند. یعنی احتمال ویروسی شدن یا خراب شدن این برنامه ها بسیار کم است.
در محیط عملیاتی احتمال خرابی نرمافزار Body Node توسط عاملهای خارجی کم است. لذا به منظور افزایش قابلیت اطمینان میتوان بعد از طراحی نرمافزارِ Body Node، از روش آزمایش و اشکالزدایی کامل به منظور پیشگیری از خطا استفاده کرد. به عبارتی تحملپذیر کردن نرمافزار Body Node در برابر خطا، بوسیلهی تست کامل نرمافزار، تحقق مییابد.
خطای ماژول سنسور در Body Nodeها:در هر Body Node ماژول سنسور نقش مهمی را ایفا می کند. این ماژول اطلاعات را از محیط یا بدن جاندار حس می کند. این اطلاعات مبنای تمام تصمیم گیریها و فعالیتهایی است که توسط لایه های بعدی انجام می شود. با از کار افتادن ماژول سنسور Body Node، یک نقطهی کور در شبکه ظاهر می شود بطوریکه سیستم یک رویداد مهم را از دست میدهد. به منظور تحمل خطاها و خرابیهای بخش سنسورِ Body Nodeها میتوان از افزونگی سختافزاری استفاده کرد. درست است که افزونگی سختافزاری به دلیل مصرف انرژی، فضای اشغال شده و هزینه قطعه افزونه، راهحل مناسبی برای تحمل خطا در شبکه های پوشیدنی نیست اما در عمل زمانیکه یک سنسور به سبب خطای پایدار از کار میافتد، آنرا تعویض می کنند. این کار به دو دلیل انجام میگیرد: اولاً تعمیر سنسور چه از لحاظ اقتصادی و چه از لحاظ زمانی به صرفه نیست. ثانیاً در برخی از مواقع، تعمیر سنسور موجب پایین آمدن قابلیت اطمینان می شود. بنابراین در این شرایط به منظور ممانعت از اینکه یک رویداد مهم سیستم مانند کنترل ضربان قلب از دست رود، باید از افزونگی سختافزاری استفاده شود که برای این کار استفاده از دو نوع افزونگی TMR[65] و Standby پیشنهاد می شود.
استفاده از افزونگی TMR : یک روش به منظور برطرف کردن خطای ماژول سنسور Body Node، استفاده از روش افزونگی TMR است. به عبارتی یک راهحل برای نائل شدن به تحملپذیری خطای ماژول سنسور، استفاده از سنسورهای افزونه میباشد. بگونهای که هر Body Node طوری پیادهسازی می شود که شامل چند ماژول سنسور باشد. شکل ۳-۱۰ نشان میدهد که در روش افزونگی TMR، تعداد سنسورها سه عدد است. در افزونگی TMR، روش کار بدین صورت است که هر سه ماژول سنسور در درون یک Body Node جاسازی میشوند و همزمان با هم کار می کنند بطوریکه هر سه ماژول یک فعالیت مشابه را انجام می دهند. در نگاه اول این ایده عالی به نظر میرسد، بطوریکه حتی با این ایده میتوان بسیاری از عملیات از قبیل بررسی کیفیت داده ها و کشف خطا را انجام داد.
Transmitter باتری |
|
MCU | |
Reciver | |
S1& S2 & S3 |
شکل ۳-۱۰: افزونگی TMR برای ماژول سنسور در Body Nodeها
در واقع در این رویکرد سه ماژول سنسور در درون یک پوسته واحد قرار داده شده اند. این کار در برخی از موارد باعث بزرگتر شدن حجم Body Nodeمیشود. اما لزوماً همیشه حجم زیاد نمی شود زیرا بعضی از سنسورها مانند mpu-9150 بسیار کوچک و کم مصرف هستند. از طرفی در روش ذکر شده هر سه ماژول سنسور همزمان با هم فعالند و از یک باتری مشترک استفاده می کنند که این امر سبب افزایش مصرف انرژی می شود. به بیانی، درست است که زیانهای افزونگی بخاطر منفعتش نادیده گرفته شدند اما ایده فوق در دراز مدت می تواند منجر به وقوع خطای پایدار شود. چونکه سه عدد ماژول سنسور از یک منبع تغذیه مشترک استفاده می کنند، که این امر سبب تخلیهی سریعتر باتری و کاهش طول عمر Body Node می شود.
به عنوان یک نتیجه گیری کلی، در صورت استفاده از روش TMR، ممکن است که مصرف توان و حجم Body Node افزایش یابد. اما باید خاطرنشان کرد که روش TMR از نظر قابلیت اطمینان عالی است، همچنین پیادهسازی این روش بسیار ساده است. باید خاطرنشان کرد که روش فوق در مواقعی که مصرف توان و حجم مدنظر نباشد، عالی جواب میدهد.
استفاده از روش افزونگیStandby :برای رفع مشکل مصرف توان روش TMR، میتوان از روش standby استفاده کرد. در این روش هر Body Node تنها یک ماژول سنسور فعال دارد. بدین صورت که اگر هر Body Node، n ماژول سنسور داشته باشد، در هر زمان یکی از آنها فعال و بقیه در حالت standby قرار میگیرند. لازم به ذکر است که ماژولها در حالت standby، انرژی بسیار کمی را مصرف می کنند، یعنی روش standby مشکل توان را ندارد. اما در روش standby به منظور تغییر حالت سنسور معیوب از حالت فعال به حالت standby و همچنین تغییر حالت سنسور افزونه از حالت standby به حالت فعال، نیاز به تشخیص خطا داریم. که این تشخیص خطا توسط واحد MCU انجام میگیرد. به عنوان مثال این واحد می تواند با بهره گرفتن از حد آستانه، خطا و خرابی را تشخیص دهد. این کار پیچیدگی نرمافزاری را افزایش میدهد که در برخی از شرایط قابل چشم پوشی است.شکل ۳-۱۱، افزونگی standby را برایماژولسنسوردرBody Nodeها نشان میدهد.
Transmitter باتری |
|
MCU | |
Reciver | |
S1 | S2 |
شکل ۳-۱۱: افزونگی standbyبرای ماژول سنسور در Body Nodeها
در روشهای NMR[66] و standby تعداد قطعات افزونه با توجه به کاربرد و هزینهها مشخص می شود. به عنوان مثال اگر کاربرد حیاتی است باید با تحمل هزینهها از تعداد قطعات بیشتری استفاده کرد. یا اگر هزینه های انرژی و حجم قطعه مهم است باید از قطعات افزونهی کمتری استفاده کرد. در کل توصیه می شود که روش NMR برای Body Nodeها از سه ماژول سنسور استفاده کند یعنی TMRباشد، همچنین روش standby از یک ماژول سنسور اصلی و یک ماژول سنسور افزونه استفاده کند. بدین صورت که ماژول سنسور اصلی در حالت فعال و ماژول سنسور افزونه در حالت غیر فعال باشند. در این صورت اگر ماژول سنسور اصلی خراب شود بلافاصله ماژول سنسور افزونه فعال می شود و شروع بکار می کند. این یعنی اینکه در هر زمان تنها یکی از دو ماژول سنسور فعال است، در نتیجه در هر زمان فقط یک ماژول سنسور از انرژی باتری استفاده می کند.
در روش standby یک سؤال مهم مطرح می شود و آن این است که چگونه خرابی ماژول سنسور اصلی را تشخیص دهیم؟ در تحقیق حاضر به منظور پاسخ دادن به سؤال فوق، الگوریتمی تحت عنوان الگوریتم تعویض سنسور[۶۷] ارائه می شود. عملکرد الگوریتم مذبور بدین صورت میباشد که دو ماژول سنسور A و B برای یک کار مشترک در نظر گرفته میشوند، بطوریکه یکی از آنها فعال و دیگری در حالت standby قرار دارد. این در حالیست که حالت سنسورهای فعال و افزونه در زمانهای مشخصی با هم تعویض می شود. این تعویض حالت بگونهای است که در بازهای از زمان هر دو سنسور همزمان با هم در حالت فعال قرار میگیرند، که به این بازهی زمانی، بازهی چک گفته می شود. در واقع سنسور معیوب در بازه چک شناسایی می شود.
به منظور درک بهتر میتوان حالتی را تصور کرد که در آن A، سنسور فعال و B در حالت standby قرار دارد. عملکرد تعویض حالت بدین صورت است که A دیر خاموش می شود تا با سنسور B که به تازگی در حالت فعال قرار گرفته، همزمان با هم کار کنند. در این حالت به بازهای که A و B همزمان با هم فعال هستند، بازهی چک گفته می شود. بطور طبیعی هر دو سنسور در بازه چک باید یک مقدار تقریباً یکسان را تولید کنند. به عنوان مثال اگر سنسورهای دما هستند باید یک دمای یکسان را نشان دهند و یا اگر سنسورهای فشار هستند باید به صورت مشترک، یک فشار را نشان دهند.
در بازه چک با تفریق مقدار دو سنسور، معنادار بودن یا نبودن اختلاف دو سنسور مشخص می شود. در واقع یک حد آستانه تحت عنوان «حد آستانه حاصل تفریق دو سنسور» تعیین می شود. اگر حاصل تفریق مقدار دو سنسوراز حد آستانه فوقکمتر باشد آنگاه اختلاف، معنادار نیست یعنی هر دو سنسور سالم هستند و در فواصل زمانی مشخص الگوریتم تعویض سنسور تکرار می شود. اما در صورتیکه حاصل تفریقدو سنسور از حد آستانه ذکر شده بیشتر باشد یعنی اختلاف معنادار است، یعنی یکی از سنسورها معیوب است. در این صورت مقادیر حس شده توسط سنسورها با «حد آستانه سنسور» مقایسه میشوند (این حد آستانه مقداری است که داده یک سنسور نباید از آن تجاوز کند؛ به عنوان مثال حد آستانه را برای یک سنسور دما میتوان ۲۷ درجه سانتی گراد در نظر گرفت). در این فرایند، سنسور معیوب شناسایی و تا ابد خاموش می شود. در طرف مقابل سنسور دیگر تا ابد در حالت فعال قرار میگیرد و به دلیل عدم وجود سنسور افزونه، دیگر الگوریتم تعویض سنسور اجرا نمی شود. شکل ۳-۱۲الگوریتم تعویض سنسور را به صورت شماتیک نشان میدهد.
A
B
بازه چک
A
بازه چک
شکل ۳-۱۲: الگوریتم تعویض سنسور
در زیر الگوریتم تعویض سنسور شرح داده شده است.
- سنسور A در حالت فعال و سنسور B در حالت standbyقرار گیرند.
- بعد از گذشت مدت زمان X، سنسور B نیز فعال شود بگونهای که سنسورهای A و B همزمان با هم فعال باشند در این حالت به مدت زمانی که هر دو سنسور فعال هستند بازه چک گفته می شود.
- در بازه چک مقدار دو سنسور را از هم تفریق کن.
- اگر حاصل تفریق از «حد آستانه حاصل تفریق دو سنسور» کمتر بود، هر دو سنسور سالم میباشند و به مرحله ۸ برو، در غیر اینصورت اختلاف معنادار است و به مرحله ۵ برو.
- یکی از سنسورها معیوب است پس خروجی هر دو سنسور را با «حد آستانه سنسور» که از قبل مشخص شده، مقایسه کن.
- سنسوری که خروجیاش از «حد آستانه سنسور» تجاوز کند، خراب است پس آن را تا ابد خاموش کن و دیگر از آن به عنوان ماژول سنسور افزونه استفاده نکن. سپس سنسور سالم را تا ابد روشن کن.
- در این وضعیت، Body Node فاقد هرگونه ماژول سنسور افزونه میباشد. پس از الگوریتم تعویض سنسور خارج شو و آن را دیگر اجرا نکن.
- بعد از گذشت مدت زمان Y، سنسور A خاموش و در حالت standby قرار گیرد.
- بعد از گذشت مدت زمان Z، مجدداً الگوریتم را با تعویض پارامترهای A و B اجرا کن.
به عنوان یک نتیجه گیری کلی باید به این نکته اشاره شود که برای Body Nodeها استفاده از روش standby نسبت به TMR مناسبتر است. لذا به منظور تحمل خطای ماژول سنسور Body Node، روش standby توصیه می شود.
اگرچه روش standby روش خوبی است اما حالتی را مانند خُرد شدن گره Body Node میتوان تصور کرد کهیک گره Body Node به همراه ماژولهای سنسور افزونهاش خراب شود. لذا در کاربردهای بسیار مهم باید برای حل این مشکل از یک گره جایگزین در یک نقطهی دیگر از بدن استفاده شود. توصیه می شود که Body Node جایگزین در فاصلهی نزدیک یا چسبیده به Body Node اصلی نصب نشود. به عنوان مثال بیماری را میتوان در نظر گرفت که کنترل ضربان قلبش امری حیاتی برای وی محسوب می شود. به دلیل اهمیت موضوع، برای کنترل ضربان قلب، دو Body Node که یکی اصلی و دیگری جایگزین است، بر روی مچ دستش نصب میشوند. در حالت فوق اگر به دلیل از دست دادن تعادل بیمار، مچ دست وی محکم با زمین برخورد کند، هر دو Body Node اصلی و جایگزین نابود میشوند. این در حالیست که در این سناریو، کنترل ضربان قلب بیمار امری حیاتی است. لذا برای سناریوی ذکر شده بهتر است که Body Node اصلی و جایگزین در مکانهای متفاوت و دور از هم، نصب شوند. به طور مثالBody Node اصلی بر روی قلب و Body Node جایگزین بر روی مچ دست نصب شوند. در این فرایند باید به مکان Body Node جایگزین توجه کرد. به عنوان مثال اگر Body Nodeی که بر روی مچ دست نصب شده و کارش کنترل ضربان قلب است خراب شود، نمیتواند کارهایش را به Body Nodeی که کارش کنترل دمای بدن است و بر گوش نصب شده بسپارد؛ چونکه لالهی گوش قادر به نشان دادن نبض نیست.
در این روش از بین دو Body Node افزونه و اصلی، یکی فعال و دیگری در حالت standby است. روش کار بدین صورت است که به محض خرابی Body Node اصلی، Master Node می آید و Body Nodeاصلی را به حالت standby میبرد و Body Node افزونه را فعال می کند. در واقع Body Node معیوب (Body Node که همه ماژولهای سنسورش خراب است) خود را در شبکه Mask می کند تا با این کار از ارسال اطلاعات به Master Node و مشغول کردن آن خودداری کند.
خطای MCU درBody Nodeها: ماژول MCU از دو بخش سختافزار و نرمافزار تشکیل شده است. در بخشهای قبل بیان شد که خرابی بخش نرمافزاری MCU، با روش آزمایش و اشکالزدایی کامل قابل پیشگیری است. در Body Nodeها فرستنده و گیرنده توسط MCU کنترل میشوند، یعنی اگر MCU خراب شود، Body Node ارتباطش را با شبکه از دست میدهد. به بیانی خرابی بخش سختافزاری MCU، باعث وجود خطای پایدار در Body Node می شود. نتیجتاً، در Body Node اگر هر یک از واحدهای فرستنده/گیرنده یا بخش سختافزاری MCU خراب شوند، آنگاه ارتباط Body Node با شبکه قطع می شود، پس در این حالت گره در دسترس نیست.
خطای باتری در Body Nodeها: هر Body Node به منظور انجام وظایفش نیاز به انرژی دارد لذا در درون هر Body Node یک باتری کوچک تعبیه می شود. این باتری کوچک انرژی کل Body Node را تأمین می کند. با توجه به مبحث طراحی ارگونومی ( که در بخشهای آتی مطرح می شود) و همچنین به دلیل رعایت فاکتورهای پوشیدنی در Body Node، اندازه این گره باید کوچک باشد از اینرو کوچک بودن اندازه باتری یک فاکتور کلیدی در Body Node است. اما این باتریهای کوچک توانایی ذخیرهی مقدار کمی از انرژی را دارند. از آنجا که عملکرد Body Node به صورت مستقیم به باتری آن وابسته است، در صورت خالی شدن باتری، Body Node دچار خطای پایدار میگردد که این امر موجب می شود که شبکه یک رویداد مهم را از دست بدهد.
اگر چه به منظور مدیریت انرژی، میتوان از تکنیکهای ارائه شده در بخش انرژی از فصل قبل استفاده کرد اما لزوماً توصیه نمی شود. زیرا فلسفه طراحی Body Node این است که در حد امکان ساده، کوچک و ارزان باشد. همچنین باید خاطرنشان کرد که باتری Body Node با توجه به نوع فعالیتش می تواند برای مدت زمانی مشخص به طور مثال یک ماه انرژی را ذخیره کند. در استفادههای حوزه سلامت به دلیل اینکه گرهها همیشه در دسترساند، میتوان آنها را طوری پیادهسازی کرد که تعویض باتری یا شارژ مجدد امکان پذیر باشد. به دلیل اینکه استفادههای حوزه سلامت حیاتی میباشند، میتوان یک زمان را برای بیماران مشخص کرد(به طور مثال روز اول هر ماه) تا باتریهای Body Nodeها را تعویض یا بصورت دستی شارژ مجدد کنند.
باتری Body Nodeها همچنین می تواند از نوع خود شارژ باشد؛ یعنی باتریهایی که با حرکت، نور و … به صورت اتوماتیک شارژ میشوند. لذا با توجه به اینکه Body Nodeها گرههای بسیار سادهای میباشند، میتوانند از باتریهای خود شارژ استفاده کنند؛ و همچنین با توجه به اینکه بدن انسان مدام در حرکت است، Body Nodeها میتوانند از باتریهایی استفاده کنند که با حرکت یا ضربان قلب شارژ میشوند.
هر Body Node می تواند با بهره گرفتن از روش حد آستانه، از میزان باتری خود مطلع شود؛ کهاینکاربادقتبسیاربالا، بوسیلهتراشههایخاصی از جمله ICهای GUAGقابلانجاماست. روش کار بدین صورت است که اگر انرژی باتری از حد آستانه کمتر شد، Body Node یک پیام هشدار به Master Node و یک پیام هشدار شارژ یا تعویض باتری به Mobile Node میدهد. به منظور در نظر گرفتن شفافیت، هشدار شارژ یا تعویض باتری Body Node، توسط گره موبایل به کاربر داده می شود که این مسئله به صورت مفصل در بخش تحمل خطای شفاف مورد بررسی قرار میگیرد. Master Nodeبا دریافت پیام هشدار میفهمد که باید Body Node با باتری ضعیف را از حالت فعال به حالت standby ببرد و به منظور جایگزینی Body Node افزونهی آن، باید حالت Body Node افزونهی آن را از standby به فعال تغییر دهد. در نهایت زمانیکه باتری Body Node معیوب، تعویض یا شارژ شد، میتوان آن را به عنوان یک Body Node افزونه برای Body Node فعال مورد استفاده قرار داد؛ با هر بار خالی شدن باتری، این چرخه می تواند تکرار شود.
خطای فرستنده در Body Nodeها:هر Body Node باید اطلاعات sense شده را به Master Node ارسال کند که این کار توسط واحد فرستنده در Body Node صورت میگیرد. در این فرایند ارسال، انتخاب تکنولوژی ارتباطی مناسب بسیار مهم میباشد. این انتخاب می تواند بر اساس معیارهای میزان مصرف باتری، برد انتقال اطلاعات، روش کشف خطا در تکنولوژی و حجم ماژول سختافزاری باشد. لذا با انتخاب یک تکنولوژی خوب میتوان با بالا بردن کارایی شبکه، میزان هزینهها را پایین آورد.
در انتخاب تکنولوژی ارتباطی برای Body Nodeها، باید تکنولوژی انتخابی دارای قابلیت انتشار اطلاعات را در تمامی جهات داشته باشد. به عنوان مثال میتوان حالتی را تصور کرد که امواج مایکرویو به عنوان تکنولوژی ارتباطی انتخاب شده باشند. در امواج مایکرویو انتشار اطلاعات به صورت مستقیم صورت میگیرد، یعنی گیرنده دقیقاً باید روبروی فرستنده باشد. این در حالی است که در شبکه پوشیدنی امکان دارد که Body Node و Master Node دقیقاً روبروی یکدیگر نباشند. به علاوه ممکن است که گرههای Body Node یا Master Node سیار باشند، برای مثال میتوان گرهی را تصور کرد که بر روی مچ دست نصب می شود. بنابراین در فرایند انتخاب تکنولوژی ارتباطی، خاصیت قابلیت انتشار در تمامی جهات الزامی میباشد.
قیمت دیگر فاکتور مهم در انتخاب تکنولوژی ارتباطی برای Body Nodeها میباشد. از آنجا که در یک شبکه پوشیدنی تعداد زیادی Body Node می تواند وجود داشته باشد، پس این گرهها نسبت به Master Node و Mobile Node باید ارزانتر باشند. علاوه بر این باید یادآوری کرد که در طراحی و پیادهسازی Body Nodeها باید قیمت ارزان و ساده بودن آنها، مورد توجه قرار گیرد. از اینرو انتخاب ماژولهای ارزان قیمت برای یک Body Node ضروری است، که انتخاب تکنولوژی ارتباطی ارزان قیمت کمک می کند تا هدف فوق محقق گردد.
در انتخاب تکنولوژی ارتباطی باید دقت شود که تکنولوژی انتخابی، برای ادامه کار نیازمند ماژولهای خارجی دیگری مانند مودم یا آنتن نباشد، به عبارتی کل تکنولوژی ارتباطی قابلیت تعبیه شدن در یک Body Node را داشته باشد.
تداخل می تواند به عنوان یک عامل مهم برای انتخاب نوع تکنولوژی ارتباطی، در نظر گرفته شود. تداخل می تواند باعث بروز مشکلاتی از جمله گمشدن داده ها شود. در برخی از کاربردها از جمله حوزه سلامت، امکان وجود تداخل در شبکه پذیرفتنی نیست. لذا اگر برای Body Nodeها یک فناوری مانند امواج رادیویی انتخاب شود که دارای تداخل باشد، عاقلانه نیست. از مطالب ذکر شده میتوان به این نتیجه رسید که تکنولوژی ارتباطی انتخاب شده برای Body Nodeها باید تداخل نداشته باشد.
با توجه به مبحث طراحی ارگونومی که در بخشهای آتی مطرح می شود، در طراحی و پیادهسازی Body Nodeها رعایت فاکتورهای پوشیدنی و کوچک بودن اندازه، مهم میباشد. لذا در فرایند انتخاب باید به حجم تکنولوژی ارتباطی دقت شود. به بیانی دیگر باید ماژول تکنولوژی ارتباطی به مقدار کافی کم حجم باشد.
برد انتقال اطلاعات دیگر ویژگی برای تکنولوژیهای ارتباطی میباشد. هر دو نوع گرههای Body Node و Master Node بر روی بدن نصب میشوند. این موضوع بیانگر این است که فاصلهی گرهها از یکدیگر بسیار کم میباشد که این خود یک مزیت برای شبکه پوشیدنی است. زیرا که هم میتوان از تکنولوژیهای ارتباطی با برد کم و هم با برد زیاد، پشتیبانی کند. اما از آنجا که فاصلهی گرهها از یکدیگر کم است، توصیه می شود که از تکنولوژیهایی استفاده شود که برد انتقال اطلاعاتشان کم باشد.
همانطور که در بخشهای قبل بیان شد، مصرف انرژی یک بحث کلیدی در محاسبات پوشیدنی میباشد. به عبارتی، در محاسبات پوشیدنی برای انجام کارهای مختلف از قبیل بررسی کیفیت داده یا انتخاب ماژول سختافزاری، باید همواره به مبحث انرژی توجه ویژهای شود. نوع پردازشBody Nodeها از نوع پردازشهای جزئی میباشد، لذا کارهای پردازشی در Body Nodeها انرژی کمی را مصرف می کنند، این در حالیست که در Body Nodeها، موضوعات ارتباطات بیشترین انرژی را مصرف می کنند. یعنی مصرف انرژی با انتخاب نوع تکنولوژی ارتباطی رابطهای مستقیم دارد. به عبارتی باید تکنولوژی انتخاب شده، کمترین میزان انرژی را مصرف کند.
با توجه به مطالب بیان شده در این بخش و با توجه به جدول امواج الکترومغناطیسی از فصل دوم، بلوتوث می تواند بهترین تکنولوژی ارتباطی برای Body Nodeها باشد. زیرا که بلوتوث قادر میباشد تا تمام نیازها و کاستیهای مطرح شده را برطرف سازد. در واقع بلوتوث دارای ویژگیهای برد انتقال اطلاعات کم، نداشتن تداخل، قابلیت انتشار در تمامی جهات، مصرف انرژی کم، حجم کم و نیاز نداشتن به سایر تجهیزات و تکنولوژیهای اضافی، قابلیت استفاده در همه مکانها، قیمت ارزان و نرخ انتقال بالا میباشد.
همچنین باید خاطرنشان کرد در صورتی که Master Node فیزیکی معیوب شود، آنگاه Body Nodeها به محض آگاهی، باید قادر به ارسال اطلاعاتشان به Master Node مجازی تعبیه شده در Mobile Node باشند. با انتخاب بلوتوث به عنوان تکنولوژی ارتباطی Body Nodeها با Master Node فیزیکی، دیگر نیازی به انتخاب تکنولوژی اضافی دیگری برای ارتباط بین Body Nodeها و Mobile Node نیست. زیرا معمولاً فاصلهی Body Nodeها و گره Mobile Node کم میباشد، بطوریکه بلوتوث می تواند این ارتباط را برقرار کند. به بیانی دیگر Body Nodeها با بهره گرفتن از تکنولوژی ارتباطی بلوتوث، قادر به برقراری ارتباط با Master Node فیزیکی و Mobile Node میباشند.
خطای گیرنده در Body Nodeها: Body Nodeها باید ابتدا از سالم بودن Master Node خود با خبر باشند سپس اقدام به ارسال اطلاعات برای آن نمایند. هر Body Node به منظور اطلاع از سالم بودن Master Node خود نیاز به یک ماژول گیرنده دارد. روش کار بدین صورت میباشد که در فواصل زمانی مشخص به طور مثال هر ۱۵ ثانیه یکبار Master Node با بهره گرفتن از تکنیک «رمز شب»، یک پیام مانند «سلام بچهها» را که بین خودش و Body Nodeهایش انحصاری است، برای تمام Body Nodeهایش ارسال می کند، بطوریکه هر Body Node با دریافت این پیام از سلامت Master Node خود مطلع می شود. اگر Body Node بعد از سپری شدن مدت زمان از پیش مشخص شده به طور مثال ۱۵ ثانیه، پیام «سلام بچهها» را از Master Node دریافت نکرد، میفهمد که Master Node مورد نظر معیوب شده است.
خرابی ماژول گیرندهی Body Node باعث عدم اطلاع Body Node از سالم بودن Master Node می شود. این امر ممکن است تا زمانیکه Master Node سالم است، مهم نباشد. اما با معیوب شدن یک Master Node باید Body Nodeهایش به Master Node مجازی تخصیص یابند. به بیانی در زمانیکه Body Nodeها در فواصل زمانی مشخص پیام «سلام بچهها» را دریافت نکنند، تشخیص می دهند که Master Nodeشان معیوب است. پس Body Nodeها با ارسال پیام به Mobile Node، معیوب بودن Master Node را گزارش می دهند. سپس Mobile Node به منظور جایگزینی Master Node مجازی، پیام «سلام Body Node» را برای Body Nodeها ارسال می کند. این مسئله به صورت مفصل در بخشهای آتی شرح داده می شود.
همچنین در بحث مدیریت خطا که در بخشهای آتی شرح داده می شود بیان می شود، درخواست برقراری ارتباط، از سوی گرههای بالایی برای Body Node ارسال می شود. از اینرو خرابی ماژول گیرندهی Body Node باعث عدم دریافت این درخواستها و در نتیجه عدم ایجاد ارتباط بین Body Node و گرههای بالایی می شود. به بیانی، دیگر گرهها قادر به مشاهده و پیج کردن Body Node نیستند.
خطاهای زودگذر در Body Nodeها:برخی عوامل محیطی از قبیل گرمای زیاد، سرمای شدید و غیره باعث بروز خطاهای گذرا در Body Nodeها میشوند. از آنجا که در بیشتر سیستمها اکثر خطاهای ممکن از نوع گذرا میباشند، میتوان با مدیریت خطاهای گذرا تا میزان زیادی سیستم را در برابر خطا تحملپذیر کرد. بنا به تعریف خطاهای گذرا، آنها پس از مدتی ناپدید میشوند، سپس سیستم ادامه وظایفش را به صورت صحیح انجام میدهد. با توجه به این تعریف ممکن است اینگونه استنباط شود که اینگونه خطاها برای Body Nodeها نگران کننده نیستند و میتوان از مدیریت خوشبینانه خطاهای گذرا استفاده کرد. اما این تفکر اشتباه است، به عنوان مثال میتوان حالتی را در نظر گرفت که فرد تحت کنترل در محیط بسیار سردی قرار بگیرد. در حالت مذبور گره Body Node کنترل کننده دمای بدن، دچار خطای گذرا می شود به گونه ای که پزشک دور دست برای مدت زمانی دمای درستی را از ابر دریافت نمیکند. این دمای ارسالی می تواند برابر با دمای بدن یک فرد مرده باشد. در این حالت پزشک ممکن است تشخیص دهد که بیمار فوت کرده است. عواقب این تشخیص می تواند برای بیمار و بیمارستان هزینهبر باشد و حتی ممکن است تشخیص فوق در روحیه بیمار تأثیر منفی بگذارد.
از مطالب بیان شده میتوان به این نتیجه رسید که خطاهای ناپایدار و متناوب در Body Nodeها باید مدیریت شوند. برای این کار بعد از پیادهسازی یک Body Node، میتوان توسط فرایند تزریق خطا، تحملپذیری آنرا از تمامی جهات مورد تست قرار داد. ابتدا باید تا حد ممکن حداکثر خطاهای ناپایدار و پایدار را پیش بینی کرد، سپس با تزریق این خطاها به سیستم، توانایی تحمل خطای Body Nodeها را سنجید. همچنین با مشخص کردن خطاهای ناپایدار ممکن، میتوان به فرد تحت نظارت آموزش داد که چگونه از بروز این خطاها جلوگیری کند به طور مثال به وی گفته شود که فلان Body Node در محیطی که دمای آن بیشتر از حد تعیین شده باشد، دچار خطای گذرا می شود. نهایتاً، در یک محیط عملیاتی میتوان با بهره گرفتن از روشهای کشف خطا، از وجود خطاهای ناپایدار در یک Body Node مطلع شد و آنها را مدیریت کرد.
۳-۳-۲ Master Nodeها
Master Node رابط بین شبکه پوشیدنی با Mobile Node و ابر است. لذا با نگاه کردن به وظیفه و جایگاه Master Node در شبکه میتوان به نقش کلیدیش پی برد. در واقع اگر Master Node خراب شود ارتباط شبکه پوشیدنی با Mobile Node و ابر قطع می شود، به بیانی کل شبکه از کار میافتد. از اینرو بررسی چالشها و تهدیداتی که Master Nodeها با آنها مواجه میشوند، ضروری است.
در معماری سه لایهای ارائه شده Master Nodeها به دو دستهی فیزیکی و مجازی تقسیم میشوند.Master Node فیزیکی یک گره سختافزاری است که در لایهی محاسبات پوشیدنی قرار دارد. در شرایطی که شبکه به دلایل خطاهای پایدار فاقد Master Node فیزیکی باشد، معماری سه لایهای از ادامه عملکرد باز میماند. به منظور تحمل خطای فوق از Master Node مجازی استفاده می شود. Master Node مجازی یک نرمافزار با توانایی انجام تمامی کارهای Master Node فیزیکی است که در لایهی محاسبات سیار قرار دارد.
۳-۳-۲-۱ Master Node فیزیکی
هر Master Node فیزیکی از چهار بخش باتری، گیرنده، پردازنده سبک وزن[۶۸] و فرستنده تشکیل شده است. که هر یک از این اجزای داخلی Master Node احتمال خراب شدن را دارند. خطای پایدار در باتری باعث از کار افتادن کل گره می شود. با خرابی بخشهای فرستنده و گیرنده، علناً Master Node شبکه را به دو جزیره جدا تبدیل می کند. بدین صورت که اگر گیرنده خراب شود، Master Node ارتباطش را با Body Nodeها از دست میدهد و همچنین خرابی فرستنده باعث مختل شدن ارتباطش با Mobile Node و ابر می شود. در آخر، اگر پردازشگر Master Node خراب شود، گره قادر به انجام ادامه فعالیت نمی باشد. در نتیجه، خرابی هر یک از چهار جزء تشکیل دهنده Master Node مساوی است با وقوع خطای پایدار در Master Node، که این امر کل شبکه را تحت الشعاع قرار میدهد.
خطاهای فرستنده: مهمترین تهدید در Master Nodeها، ارتباطات است. از اینرو باید تکنولوژی ارتباطی انتخابی برای Master Node، تضمین کننده برقراری ارتباط در تمامی زمانها باشد. فرستندهی Master Node باید قادر باشد که اطلاعات را برای Mobile Node بفرستد. یک تکنولوژی ارتباطی خوب می تواند باعث افزایش کارایی شبکه شود همچنین با توجه به اینکه معمولاً فاصلهی بین Master Node و Mobile Node زیاد نیست، یک تکنولوژی ارتباطی کوتاه برد برای برقراری این ارتباط کافی است.
با توجه به مطالب ذکر شده، تمام موارد مطرح شده در بخش ۳-۳-۱، درباره Master Nodeها نیز صادق است و مطابق با آن بخش، بلوتوث بهترین گزینه بعنوان تکنولوژی ارتباطی Master Nodeها میباشد. در واقع ویژگیهای بلوتوث باعث پذیرفته شدن این تکنولوژی توسط Master Nodeها می شود. ویژگیهای بلوتوث عبارتند از: برد انتقال اطلاعات کم، نداشتن تداخل، قابلیت انتشار در تمامی جهات، مصرف انرژی کم، حجم کم، عدم نیاز به سایر تجهیزات و تکنولوژیهای اضافی، قابلیت استفاده در همه مکانها، قیمت ارزان و نرخ انتقال بالا.
در وضعیتی که گره Mobile Node قادر به انجام وظایف خود نباشد، باید آنرا از توپولوژی شبکه حذف کرد. با حذف گره Mobile Node، شبکه قادر به برقراری ارتباط با ابر نیست. در این شرایط Master Node باید ارتباط شبکه را با ابر برقرار کند. اما به دلیل برد کم بلوتوث، Master Node قادر به برقراری ارتباط با ابر نیست. از مطالب بیان شده نتیجه می شود که در تمامی کاربردها، هر Master Node علاوه بر بلوتوث، نیاز به یک تکنولوژی ارتباطی بلند برد دارد. که این تکنولوژی بلند برد دارای دو مزیت میباشد: ۱- برقراری ارتباط Master Node با ابر، در صورت خرابی Mobile Node. 2- در زمانیکه Master Node از طریق بلوتوث اطلاعاتش را به Mobile Node ارسال می کند اگر بنا به هر دلیلی بلوتوث خراب شود، ارتباط Master Node با Mobile Node قطع می شود، که به منظور تحمل این خطا میتوان از تکنولوژی ارتباطی بلند برد برای ارتباط با Mobile Node استفاده کرد. به بیانی در این حالت تکنولوژی ارتباطی بلند برد به عنوان تکنولوژی ارتباطی افزونه استفاده می شود.
خطای گیرنده: Master Node ابتدا باید از سلامت Mobile Node مطمئن باشد سپس اقدام به ارسال اطلاعات برای Mobile Node کند. هر Master Node به منظور اطلاع از سلامت Mobile Node، به یک ماژول گیرنده نیاز دارد. روش کار به منظور رسیدن به هدف فوق بدین شرح است که Mobile Node می تواند در فواصل زمانی مشخص پیام «سلام Master Node» را برای Master Node ارسال کند. به عبارتی Master Node با دریافت پیام «سلام Master Node» تشخیص میدهد که گره Mobile Node سالم است. اما اگر در فاصلهی زمانی از قبل مشخص شده، پیام مذبور را دریافت نکند، متوجه می شود که Mobile Node معیوب شده است.
در ادامه بیان می شود که برقراری ارتباط بین Master Node و Mobile Node به دو طریق قابل انجام است.
حالت اول: همانطور که در شکل ۳-۱۳ مشخص است، در این حالت پیامهای «سلام Master Node» و «Master Nodeسلام میرساند» در تمامی شبکه ها مشترک است. لذا در این حالت تعداد ارسال اطلاعات Master Node به Mobile Node زیاد است؛ همچنین به دلیل مشترک بودن پیام «سلام Master Node»، ممکن است Master Node قادر به تشخیص خرابی Mobile Node خود نباشد. از اینرو حالت اول برای برقراری ارتباط بین Master Node و Mobile Node توصیه نمی شود.
شکل ۳-۱۳: برقراری ارتباط بین Mobile Node و Master Node در حالت اول
حالت دوم: مطابق شکل ۳-۱۴، در حالت دوم پیامهای ارسالی توسط گرهها، منحصر به فرد میباشند بطوریکه با این پیامها هم میتوان Master Node را از سلامت Mobile Node باخبر کرد و هم این پیامها را به عنوان رمز شب برای احراز هویت مورد استفاده قرار داد.
شکل ۳-۱۴: برقراری ارتباط بین Master Node و Mobile Node در شبکه A و در حالت دوم
نتیجتاً، اگر ماژول گیرندهی Master Node خراب شود، آنگاه سه مشکل به وجود می آید.
- Master Node توانایی تشخیص سالم بودن Mobile Node را ندارد.
- اطلاعات حس شده توسط Body Nodeها، قابل دریافت نیستند.
- به منظور برقراری ارتباط، Mobile Node قادر به مشاهده و پیج کردن Master Node نیست.
به عبارتی خرابی ماژول گیرنده باعث وقوع خطای پایدار در Master Node می شود. برای تحملپذیر کردن Master Node در برابر این خطا میتوان از افزونگیهای TMR و standby استفاده کرد. که لزوماً توصیه می شود از روش standby استفاده شود و تعداد گیرندهها در هر Master Node دو عدد باشند. بدین صورت که گیرندهی اصلی در حالت فعال و گیرندهی افزونه در حالت standby باشد. در این روش به منظور تشخیص خرابی ماژول گیرنده، نیاز به استفاده از تکنیکهای کشف خطا میباشد، که این کار توسط پردازشگر Master Node، انجام می شود، اگرچه این کار پیچیدگی نرمافزاری را افزایش میدهد اما در اکثر مواقع قابل چشم پوشی است.
در روش standby تشخیص خرابی گیرنده اصلی یک چالش مهم است. در تحقیق فوق به منظور حل این چالش، الگوریتم «تعویض گیرنده» ارائه می شود. در زیر الگوریتم تعویض گیرنده شرح داده شده است.
- گیرنده A در حالت فعال و گیرنده B در حالت standbyقرار گیرند.
- بعد از گذشت مدت زمان X، گیرنده B نیز فعال شود بگونهای که گیرندههای A و B همزمان با هم فعال باشند در این حالت به مدت زمانی که هر دو گیرنده فعال هستند بازه چک گفته می شود.
- در بازه چک مقادیر دریافتی توسط هر دو گیرنده را با هم مقایسه کن.
- اگر مقادیر دریافت شده یکسان بودند آنگاه هر دو گیرنده سالم میباشند و به مرحله ۸ برو، در غیر اینصورت به مرحله ۵ برو.
- یکی از گیرندهها معیوب است پس مقادیر دریافتی هر دو گیرنده را با رمز شبهای از قبل مشخص شده، مقایسه کن.
- گیرندهای که مقادیرش با رمز شبها تناقض دارد، خراب است پس آن را تا ابد خاموش کن و دیگر از آن به عنوان ماژول گیرنده افزونه استفاده نکن. سپس گیرنده سالم را تا ابد روشن کن.
- در این وضعیت، Master Node فاقد هرگونه ماژول گیرنده افزونه میباشد. پس از الگوریتم تعویض گیرنده خارج شو و آن را دیگر اجرا نکن.
- بعد از گذشت مدت زمان Y، گیرنده A خاموش و در حالت standby قرار گیرد.
- بعد از گذشت مدت زمان Z، مجدداً الگوریتم را با تعویض پارامترهای A و B اجرا کن.
همانطور که مشاهده شد، در روش standby تشخیص خرابی گیرنده با بهره گرفتن از الگوریتم «تعویض گیرنده»، انجام می شود. شکل ۳-۱۵افزونگیstandbyرا برایماژولگیرندهدر یکMaster Node نشان میدهد.
Transmitter باتری |
|
Light Processing | |
R1 | R2 |
شکل ۳-۱۵: افزونگی standbyبرای ماژول گیرنده در Master Nodeها
خطای پردازشگر: کار Master Node پردازش اولیه میباشد همچنین در هر Master Node، ماژول پردازشگر کنترل فرستنده و گیرنده را بر عهده دارد از اینرو وجود خطای پایدار در پردازشگر Master Node، بر تمامی ماژولهای Master Node تأثیر می گذارد. در چنین شرایطی استفاده از پردازشگر افزونه توصیه نمی شود زیرا فلسفه طراحی Master Node، بر روی سادگی و مبرّا بودن از پیچیدگی مانور میدهد؛ بنابراین در چنین حالتی استفاده از Master Node افزونه توصیه می شود. باید خاطرنشان کرد که Master Node افزونه در شبکه های چند Master Nodeی هم از نوع فیزیکی و هم از نوع مجازی است ولی در شبکه های تک Master Nodeی از نوع مجازی میباشد.
خطای باتری: باتری از جمله اجزای مهم یک Master Node میباشد، تا آنجا که با خالی شدن باتری، طول عمر Master Node به پایان میرسد. به بیانی هرگونه نقص و خرابی باتری، وقوع خطای پایدار را در شبکه سبب می شود. از اینرو به منظور پیشگیری از خطای پایدار ذکر شده، استفاده از روشهایی برای یک Master Node الزامی است. در ادامه به منظور پیشگیری از خالی شدن باتری Master Node، روشهای کاهش هزینه ارتباطات، استفاده همزمان از تکنولوژیهای ارتباطی مختلف و انتخاب باتری با کیفیت عالی، شرح داده میشوند.
با بهره گرفتن از روش کاهش هزینه ارتباطات، میتوان از خالی شدن سریع باتری Master Node پیشگیری کرد. از آنجا که ارتباطات بیشترین میزان انرژی را مصرف می کنند، میتوان با کم کردن هزینه های ارتباطات، انرژی قابل توجهی را ذخیره کرد. روش کار بدین صورت میباشد که بجای ارسال پیوستهی اطلاعات از ارسال گسسته استفاده می شود که این امر نیاز به حافظه دارد. همچنین بجای ارسال مداوم داده های خام میتوان آنها را در حافظه نگه داشت و تنها نتایج پردازشها را ارسال کرد. لازم به ذکر است که هر Master Node قابلیت پشتیبانی از یک حافظه RAM چندین گیگابایتی را دارد.
روش دیگر به منظور پیشگیری از خالی شدن باتری، استفادهی همزمان از دو تکنولوژی ارتباطی متفاوت است. Master Node به دو نوع تکنولوژی ارتباطی بلند برد و بلوتوث مجهز است. حال اگر انتقال بلند برد نسبت به بلوتوث انرژی بیشتری را مصرف کند، آنگاه به منظور ذخیرهی انرژی، Master Node می تواند برای ارسال اطلاعات به Mobile Node از تکنولوژی بلوتوث استفاده کند و در مواردی خاص برای ارسال اطلاعات به ابر از تکنولوژی ارتباطی بلند برد استفاده کند.
دیگر روش پیشگیری از خراب شدن باتری، استفاده از باتری با کیفیت عالی است. اگرچه هزینه های مالی یکی از محدودیتهای طراحی و پیادهسازی خوب Master Nodeها میباشد. اما در مرحله طراحی باید به تفاوت Body Nodeها و Master Nodeها توجه شود. از آنجا که تعداد زیادی سنسور در یک شبکه پوشیدنی وجود دارد پس باید هزینه Body Nodeها کم باشد. اما باید یادآوری کرد که در یک شبکه تک Master Nodeی، تنها یک Master Node فیزیکی وجود دارد، همچنین در شبکه های چند Master Nodeی تعداد Master Nodeها بسیار کمتر از Body Nodeهاست؛ این امر باعث می شود که در انتخاب باتری و اجزاء سازندهی Master Node، قطعات با کیفیتتری مورد استفاده قرار گیرد.
اگرچه رعایت فاکتورهای پوشیدنی و معیارهای ارگونومی در طراحی و پیادهسازی Master Nodeها ضروری است اما اگر اندازهMaster Node تا میزان قابل قبولی بزرگ باشد، اشکالی ندارد. زیرا که محل قرار گیری Master Node در توپولوژی شبکه ثابت نیست و می تواند در هرجا قرار گیرد. به طور مثال اگر به علت اندازه بزرگ نشود که آنرا به عنوان یک دستبند استفاده کرد، میتوان آنرا بر روی کمربند نصب کرد، این درحالیست که یک Body Node که مسئولیت کنترل ضربان قلب را دارد نمیتواند در هر مکان از توپولوژی شبکه قرار گیرد.
امروزه به منظور ذخیره حرکات و فعالیتهای انسان انواع مختلفی از کامپیوترهای پوشیدنی از قبیل Fitbit و Misbit Shine توسط کارخانههای سازنده، تولید می شود. طراحی این محصولات شبیه طراحی Master Node میباشد. طراحی Fitbit به صورتی است که بر روی مچ دست نصب می شود و به عنوان یک دستبند مورد استفاده قرار میگیرد.
از مطالب ذکر شده میتوان به این نتیجه رسید که طراحی و پیادهسازی گره Master Node با Body Node متفاوت است. بطوریکه میتوان تا اندازه قابل قبولی از هزینه های اقتصادی و بزرگ بودن اندازه Master Nodeها چشمپوشی کرد. از اینرو میتوان باتری Master Nodeها را بگونهای در نظر گرفت که انرژی زیادی را ذخیره کنند و همچنین قابل تعویض و قابل شارژ باشند.
اگر چه طول عمر باتری Master Nodeها و مدت زمان نگهداری شارژشان طولانی است اما در هر زمان این احتمال وجود دارد که باتری خراب شود یا شارژش تمام شود. در این شرایط استفاده از باتری افزونه راهحل مناسبی است. بدین صورت که اگر خراب شدن یا خالی شدن باتری یک Master Node سبب وقوع خطای پایدار در Master Node گردد، بلافاصله از باتری افزونه استفاده شود. لازم به ذکر است که اگر شارژ باتری یک Master Node تمام شود میتوان بلافاصله از باتری افزونه استفاده کرد و سپس باتری با شارژ کم را دوباره شارژ کرد و به عنوان باتری افزونه مورد استفاده قرار داد. با هر بار خالی شدن شارژ باتری میتوان این چرخه را تکرار کرد.
خطاهای نرمافزار: مدیریت Body Nodeهای افزونه توسط نرمافزار Master Node صورت میگیرد. Master Node مدیریت Body Nodeهای افزونه را به دو صورت چک کردن اطلاعات و چک کردن فعالیت انجام میدهد. در روش چک کردن اطلاعات اگر داده های دریافتی از یک Body Node نوسان زیادی داشته باشند، آنگاه Master Node، خطا را در Body Node تشخیص میدهد و بعد Body Node معیوب را از ساختار شبکه حذف و سپس یک Body Node افزونه را جانشین آن می کند.
اما در روش چک کردن فعالیت، Body Node خودش خرابی خود را تشخیص میدهد و بلافاصله خود را Mask می کند و دیگر چیزی را برای Master Node ارسال نمیکند. به عبارتی Body Node خراب خودش را از توپولوژی شبکه حذف می کند، Master Node در این حالت Body Node را چک می کند تا بفهمد داده ارسال می شود یا نه؛ اگر Master Node تشخیص دهد که Body Node هیچ دادهای را برایش ارسال نمیکند، آنگاه یک Body Node افزونه را جایگزین آن می کند. البته این روش کارا نیست زیرا Master Node همیشه به سبب سرکشی مداوم Body Nodeها مشغول است. برای رفع مشکل این روش توصیه می شود که Master Node به صورت مداوم از Body Nodeها سرکشی نکند، در عوض Body Node معیوب قبل از Mask کردن خود، یک پیام «مُردم» را برای Master Node ارسال کند. سرانجام Master Node با دریافت این پیام یک Body Node افزونه را جایگزین آن می کند.
سختافزار و نرمافزار Master Nodeها نسبت به Body Nodeها پیشرفتهتر است. به عبارتی در مقایسه با Body Nodeها، آنها قادر به اجرای الگوریتمها و محاسبات پیچیدهتری هستند. لذا Master Nodeها میتوانند مدیریت داده ها را در سطح بالاتری انجام دهند، به طور مثال بررسی کیفیت داده یکی از مباحث مدیریت داده است که می تواند توسط Master Node و در سطح بالاتری نسبت به Body Node انجام شود.
۳-۳-۲-۲ Master Node مجازی
Master Node نقش مهمی را در معماری سه لایهای ارائه شده ایفا می کند. از اینرو وجود گره Master Node در شبکه یک نیاز محسوب می شود. در معماری ارائه شده اگر بنا به هر دلیلی Master Node فیزیکی از کار بیافتد، بگونهای که قادر به انجام ادامه وظایفش نباشد، آنگاه شبکه قادر به ادامه دادن فعالیتش نیست. در این شرایط به منظور تحمل خطای فوق، Mobile Node گره Master Node فیزیکی معیوب را از ساختار شبکه حذف می کند و با خبردار کردن Body Nodeها از معیوب بودن Master Nodeشان، به آنها فرمان میدهد تا اطلاعات حس شدهشان را برای Mobile Node ارسال کنند.
ممکن است فرایند ارسال مستقیم اطلاعات از Body Nodeها به Mobile Node با این ایده همراه باشد که Master Node از ساختار شبکه حذف شده و Mobile Node خود، جایگزین آن شده است. اما واقعیت امر این است که با توجه به نقش کلیدی Master Node، نمی توان آنرا از ساختار شبکه حذف کرد. پس باید فرایند ارسال اطلاعات از Body Nodeها به Mobile Node بگونهای باشد که Body Nodeها فکر کنند اطلاعاتشان را برای یک Master Node میفرستند و در طرف مقابل نرمافزار Mobile Node فکر کند که اطلاعاتش را از یک Master Node میگیرد. دلیل این امر اهمیت انجام کارها بصورت سلسله مراتبی در بین گرههاست. به بیانی باید مشکل فوق بگونهای حل شود که سلسله مراتب کارها در معماری سه لایهای ارائه شده حفظ شود. واقعیت امر این است که برای تحقق هدف فوق به یک Master Node نیاز است و این در حالیست که شبکه ما فاقد هرگونه Master Node فیزیکی است.
با توجه به مطالب بیان شده، وجود یک Master Node مجازی در شبکه نیاز است. در واقع یک Master Node مجازی به صورت نرمافزاری در گره Mobile Node ایجاد می شود. به منظور درک بهتر میتوان Master Node مجازی را شبیه کیبرد مجازی ویندوز تصور کرد که در صورت خرابی کیبرد فیزیکی، میتوان از آن استفاده کرد. به بیانی سادهتر Master Node مجازی یک نرمافزار است که توانایی انجام تمام کارهای Master Node فیزیکی را دارد. Mobile Node ابتدا Master Node فیزیکی معیوب را از ساختار شبکه حذف می کند، سپس به Body Nodeهای آن فرمان میدهد که اطلاعاتشان را برای Master Node مجازی ارسال کنند، این کار سبب می شود که Body Nodeها متوجه نبود Master Node فیزیکی در شبکه نشوند. همچنین Master Node مجازی با دریافت این اطلاعات، مانند یک Master Node فیزیکی آنها را پردازش می کند و نتایج پردازش را به نرمافزار Mobile Node میدهد. لازم به ذکر است که در فرایند مذکور، نرمافزار Mobile Node بگونهای طراحی می شود که داده ها و اطلاعات مورد نیازش را از Master Node مجازی میگیرد.
خطاها و خرابیهای Master Node مجازی نسبت به Master Node فیزیکی متفاوت است. Master Node مجازی یک نرمافزار، واقع در Mobile Node است؛ بنابراین تهدیدات آن مانند تهدیدات نرمافزارMobile Node است. به عنوان مثال hang کردن Mobile Node باعث وقوع خطای پایدار در Master Node مجازی می شود. این تهدیدات و راه حلهای آنها در بخش ۳-۳-۶ و در قسمتخرابیدرنرمافزارMobile Nodeها به تفضیل شرح داده میشوند. شکل ۳-۱۶ برقراری ارتباط بین Mobile NodeوBody Nodeرا درشبکهA نشان میدهد.
شکل ۳-۱۶: برقراری ارتباط بین Mobile Node و Body Node در شبکه A
۳-۳-۲-۳ شبکه های چندMaster Nodeی
بحث دیگری که در مورد Master Nodeها مطرح میباشد، این است که در شبکه ها با تعدادBody Nodeهای فراوان، در هر زمان چه تعداد Master Node در شبکه فعال باشد. یعنی آیا تمام Body Nodeها اطلاعاتشان را فقط برای یک Master Node واحد بفرستند. که در این حالت آن Master Node به دلیل فعالیتهای زیاد از قبیل دریافت زیاد، پردازش زیاد، ارسال زیاد، انرژی زیادی را مصرف می کند. به بیانی دیگر یک Master Node توسط تعداد زیادی Body Node تغذیه می شود که این باعث می شود که Master Node مدام در حال انجام فعالیت شدید و مصرف انرژی باشد. همچنین در چنین شرایطی بحثهای پیچیدهای از قبیل مدیریت کانال، تصادف و پر شدن حافظه Master Node به وجود می آید که هر کدام نیاز به الگوریتمها و محاسبات پیچیده دارند. استفاده از یک Master Node فعال، برای شبکه ها و کاربردهایی از جمله حوزه سلامت توصیه می شود که تعداد Body Nodeهایشان کم است.
با توجه به مطالب ذکر شده میتوان به این نتیجه رسید که در شبکه هایی که دارای Body Nodeهای فراوانی میباشند، بهتر استبه منظور تقسیم بار و فعالیت، همزمان چند Master Node در شبکه در حالت فعال باشد. در این تحقیق، این دسته از شبکه ها با نام «شبکه های چند Master Nodeی» شناخته میشوند.
اگر بنا به دلایلی از قبیل خطاهای پایدار یک Master Node خراب شود، آنگاه این خرابی بر کل سیستم تأثیرگذار است به بیانی خطا به یک مؤلفهی خاص محدود نمی شود و محدوده خطا کل سیستم میباشد. یعنی در این حالت با حذف Master Node معیوب از توپولوژی شبکه، سیستم نمیتواند مشکل را حل کند. در شرایط فوق افزونگی سختافزاری می تواند بهترین گزینه برای حل مشکل باشد. در این حالت Master Nodeهای افزونه در حالت standby قرار میگیرند.
به عنوان مثال حالتی را میتوان تصور کرد که در شبکه پوشیدنی سه Master Node با نامهای A، B و C در حال فعالیت میباشند. همچنین این شبکه شامل ۱۵ عدد Body Node میباشد. در این حالت به منظور تقسیم فعالیت بین Master Nodeها، A به Body Nodeهای ۱ تا ۵، B به Body Nodeهای ۶ تا ۱۰ و C به Body Nodeهای ۱۱ تا ۱۵ تخصیص مییابند. در این حالت A یک قطعهی افزونه با نام، B یک قطعهی افزونه با نام و C یک قطعهی افزونه با نام دارند. که هر کدام از Master Nodeها در صورت خرابی فقط مجاز میباشند که از افزونهی همنام خود استفاده کنند.
در حالت فوق میتوان حالتی را در نظر گرفت که A خراب شده و از افزونهاش که است، استفاده می کند. حال اگر هم خراب شود، با وجود بیکار بودن و ، Body Nodeهای ۱ تا ۵ اطلاعاتشان را مستقیم به Master Node مجازی تعبیه شده در Mobile Nodeارسال می کنند که این کار توصیه نمی شود. راهحل دیگر می تواند این باشد که Body Nodeهای ۱ تا ۵ را به B و C تخصیص دهیم. بدین صورت که Body Nodeهای۱ تا ۳ به Bو Body Nodeهای۴ و ۵ را به C بدهیم، که این کار نیز توصیه نمی شود. زیرا علیرغم بیکار بودن و ، فعالیتهای B و C زیادتر شده است.
از مطالب ذکر شده میتوان به این نتیجه رسید که هر Master Node باید قادر به استفاده از همه Master Nodeهای افزونه باشد. و در صورتی که همه افزونهها نیز خراب شدند آنگاه Body Nodeهای متعلق به Master Node خراب به Master Nodeهای سالم تخصیص یابد. در آخر اگر تمام Master Nodeها خراب شدند، آنگاه تمام Body Nodeها خودشان مستقیماً اطلاعاتشان را به Master Node مجازی تعبیه شده در Mobile Nodeارسال کنند. برای درک بهتر حالتی را میتوان در نظر گرفت که در سناریوی ذکر شده اگر A خراب شد باید از استفاده کرد و اگر خراب شد باید از استفاده کرد و اگر خراب شد باید از استفاده کند و اگر خراب شد باید Body Nodeهایش به B و C تخصیص یابد. حال اگر B خراب شود باید Body Nodeهایش به C تخصیص یابد در آخر اگر C که تنها Master Node باقیمانده است، خراب شود، باید Body Nodeها خودشان اطلاعاتشان را به Master Node مجازی تعبیه شده در Mobile Nodeارسال کنند.
در شبکه های چندMaster ی هر لحظه این امکان وجود دارد که کلیه Master Nodeهای فیزیکی از کار بیافتند، این در حالیست که ممکن است، این شبکه ها در کاربردهای حیاتی مورد استفاده قرار گیرند. باید خاطرنشان کرد که در کاربردهای حیاتی ریسک معنا ندارد. گرچه احتمال از کار افتادن همه Master Nodeها کم است ولی باید در هر لحظه شبکه آمادگی برخورد با چنین مشکلی را داشته باشد. اگر همه Master Nodeها خراب شوند آنگاه ارتباط Body Nodeها با لایه های Mobile Node و ابر قطع می شود. همچنین اگر Body Nodeها بدون آگاهی از این مسأله مدام دادههایی را برای Master Nodeها بفرستند، بیهوده انرژیشان اتلاف می شود. لذا به محض از کار افتادن Master Node، باید Body Nodeهای آن از این قضیه مطلع شوند تا از ادامه ارسال اطلاعات به Master Nodeها و مصرف بیهوده انرژی خودداری کنند.
از مطالب ذکر شده میتوان نتیجه گرفت که با از کار افتادن تمام Master Nodeهای شبکه باید بلافاصله Body Nodeها از این موضوع آگاه شوند. پس از آگاهی Body Nodeها، تحت هر شرایطی نباید شبکه از انجام صحیح عملیات باز بماند. لذا باید هر Body Node اطلاعات دریافتی را به Master Nodeمجازی تعبیه شده در Mobile Node ارسال کند. با توجه به اینکه فاصلهی Body Nodeها تا Mobile Node کم است، تکنولوژی بلوتوث برای این کار مناسب است.
تحمل خرابی باتری: در شبکه های چند Master Nodeی به منظور تحمل خرابی باتری، بجای باتری افزونه از Master Node افزونه استفاده می شود. در چنین شبکه هایی اگر Master Node معیوب باتریش از حد آستانه کمتر شود، به حالت standby میرود. اما سؤالی که ممکن است مطرح شود این است که یک Master Node تا چه میزانی باید شارژ باتری داشته باشد که ما آن را به عنوان گره معیوب در نظر گرفته و سراغ گره جایگزین بگردیم؟ به بیانی حد آستانه باتری چقدر باشد؟ به منظور پاسخ به سؤال فوق، در این تحقیق الگوریتمی تحت عنوان «حد آستانه باتری» ارائه می شود. الگوریتم مذبور مینیمم انرژی باتری Master Node را برای کارهای آتی حساب و بر حسب درصد نشان میدهد. الگوریتم «حد آستانه باتری» به شرح زیر است.
- هزینه باتری برای ارسال اطلاعات حس شده فعلی A= .
- هزینه باتری برای تبادل پیام با Mobile Node (به منظور آگاهسازی Mobile Node از کمبود باتری Master Node) B = .
- هزینه باتری برای قطع ارتباط و خاموش شدن Master Node = C .
- C + B + A = D .D مینیمم انرژی باتری برای کارهای آینده Master Node است.
- D را بر حسب درصد در خروجی نشان بده.
روش کار بدین شکل است که در صورت وجود Master Node افزونه، گره Mobile Node تمام Body Nodeهای Master Node معیوب را به Master Node افزونه تخصیص میدهد، بطوریکه Master Node افزونه، ادامه فعالیتهای Master Node معیوب را انجام میدهد و در آخر گره Mobile Node، Master Node معیوب را به حالت standby میبرد؛ که اگر در این حالت شارژ باتری Master Node خالی شده باشد، میتوان آنرا شارژ کرد و به عنوان Master Node افزونه مورد استفاده قرار داد.
اما اگر در سناریوی ذکر شده، هیچ Master Node افزونهای در شبکه موجود نباشد، باید به منظور تحمل این خرابی از مکانیزم hand-off استفاده کرد. بدین صورت که گره Mobile Node به منظور واگذاری فعالیتهای Master Node معیوب، از میان Master Nodeهای موجود در شبکه، Master Nodeی را که دارای بیشترین انرژی است انتخاب می کند.
به بیانی سادهتر هنگامی که هیچ Master Node افزونهای در شبکه وجود ندارد، Master Node معیوب باید Body Nodeهایش را به یک Master Node سالم واگذار کند. حال برای این کار Master Node جانشین باید بقدر کافی انرژی لازم را داشته باشد، از اینرو Master Nodeی که بیشترین انرژی را دارد برای اجرای سرویسهای Master Node معیوب انتخاب می شود. سپس Master Node معیوب توسط گره Mobile Node به حالت standby میرود. این فرایند در شکل ۳-۱۷ نشان داده شده است.
شکل ۳-۱۷: تحمل خرابی باتری Master Node در شبکه های چند Master Nodeی که فاقد Master Node فیزیکی افزونه هستند
توضیح شکل ۳-۱۷ بدین صورت است که اگر انرژی یک Master Node از حد آستانه پایینتر آید، آنگاه Master Node مذبور به عنوان یک گره معیوب در شبکه شناخته می شود و باید با پیام « من معیوب هستم » معیوب بودنش را به Mobile Node اطلاع دهد. اگر هیچ Master Node افزونهای در شبکه موجود نباشد آنگاه Mobile Node با بهره گرفتن از تکنیک hand-off، یک Master Node را به عنوان جانشین انتخاب می کند. سپس پیام «شما به عنوان جانشین انتخاب شدید» را برای Master Node جانشین میفرستد و در جواب، اگر Master Node جانشین هیچ مشکلی برای جانشینی نداشته باشد یک پیام تصدیق برای او میفرستد. در پایان Mobile Node، تمامی Body Nodeهای Master Node معیوب را به Master Node جانشین تخصیص میدهد.
بطور کلی اگر باتری Master Node معیوب خراب شده باشد، باید آنرا تعویض کرد. اما اگر باتری آن خالی شده باشد میتوان آنرا شارژ کرد، یعنی در زمانی که Master Node در حالت standby است، کاربر آنرا شارژ کند. با پر شدن شارژ باتری Master Node معیوب، دیگر خطای آن رفع شده است، پس میتوان از آن به عنوان یک Master Node افزونه برای Master Nodeهای دیگر استفاده کرد.
مدیریت خطا: در شبکه های چندMaster Nodeی و در بحث مدیریت Master Nodeها این سؤال مطرح است که مدیریت Master Node معیوب از طریق Mobile Node انجام شود یا اینکه توسط دیگر Master Nodeهای شبکه صورت گیرد. توصیه می شود که این مدیریت توسط Mobile Node انجام گیرد، زیرا Master Nodeها نسبت به Mobile Node دید کمتری از شبکه دارند. از آنجا که مدیریت Master Node معیوب بر عهده Mobile Node است پس باید به محض معیوب شدن یک Master Node، گره Mobile Node از این قضیه آگاه شود. این آگاهسازی توسط چک کردن فعالیت بدین صورت انجام میگیرد که اگر بعد از گذشت مدت زمانی Master Node با Mobile Node ارتباط نداشته باشد، آنگاه Mobile Node میفهمد که Master Node مورد نظر، معیوب شده است.Mobile Node بعد از باخبر شدن، یکی از سه کار مهم زیر را انجام میدهد.
- یک Master Node افزونه را به Body Nodeهای متعلق به Master Node معیوب تخصیص میدهد، بدین صورت که به تمام Body Nodeهای آن اطلاع میدهد که دادههایشان را به Master Node افزونه ارسال کنند.
- اگر هیچ Master Node افزونهای در شبکه نباشد، آنگاه Mobile Node با بهره گرفتن از تکنیک hand-off، بار Master Node معیوب را بین Master Nodeهای سالم تقسیم می کند. Master Nodeهای سالم نیز میتوانستند این تقسیم بار را انجام دهند اما با توجه به اینکه مدیریت Master Nodeها بر عهده Mobile Node است، توصیه می شود که تکنیک hand-off را Mobile Node انجام دهد، زیرا دید بهتری به شبکه دارد.
- اگر Master Node معیوب شده تنها Master Node موجود در شبکه باشد، آنگاه Mobile Node خود جایگزین Master Node معیوب می شود و اطلاعات را از کل Body Nodeهای شبکه میگیرد. در این حالت Body Nodeها بعد از آگاهی از خرابی تنها Master Node موجود در شبکه، به فرمان Mobile Node، دادههایشان را با بلوتوث به Master Node مجازی تعبیه شده در Mobile Node ارسال می کنند.
نتیجتاً در شبکه های چند Master Nodeی، Master Node معیوب توسط گرههای هم سطح یعنی دیگر Master Nodeها مدیریت نمی شود و این مدیریت خطا توسط گره بالایی صورت میگیرد. بدین صورت که هر Master Node خطای خود را کشف می کند، سپس توسط پیامی Mobile Node را از این خطا آگاه می کند. در نهایت Mobile Node فرمان مناسب را به منظور مدیریت خطا صادر می کند.
خطاهای گذرا و متناوب: خطاهای گذرا دیگر تهدید برای Master Nodeها میباشند. با توجه به اینکه در سیستمهای مختلف اکثر خطاها از نوع گذرا و متناوب میباشند، لذا Master Nodeها باید قابلیت تحمل این نوع خطاها را داشته باشند. Master Nodeها در هر زمان باید آمادهی دریافت، پردازش و ارسال اطلاعات باشند. در بحث Body Nodeها اگر یک Body Node از کار میافتاد، سیستم یک رویداد را از دست میدهد اما در بحث Master Nodeها اگر یک Master Node از کار بیافتد تمام رویدادهای مهم Body Nodeهایش از دست میرود. که این قضیه حتی برای خطاهای گذرایی که برای مدت زمانی کوتاه رخ می دهند، صادق است.
از مطالب بیان شده میتوان به ضرورت مدیریت خطاهای ناپایدار و متناوب پی برد. در واقع سیستم باید با بهره گرفتن از تکنیکهای کشف و مکان یابی خطا، Master Nodeی را که دارای خطای گذراست شناسایی کند. از آنجا که مدیریت خطا توسط گرههای بالایی انجام میگیرد، پس Mobile Node تکنیکهای کشف و مکان یابی خطای گذرا را اجرا می کند. بعد از تشخیص وجود خطای گذرا در Master Node، تمامی Body Nodeهای Master Node معیوب باید از وجود خطای گذرا مطلع شوند. همچنین در شبکه های چند Master Nodeی، این Body Nodeها باید به یک Master Node سالم تخصیص یابند و در صورت نبود Master Node سالم در شبکه، Body Nodeها خود موظف به ارسال اطلاعات برای Master Node مجازی تعبیه شده در Mobile Nodeمیباشند. این در حالیست که در شبکه های تک Master Nodeی، خود Body Nodeها به صورت مستقیم اطلاعاتشان را به Master Node مجازی ارسال می کنند. این فرایند تا زمان برطرف شدن خطای گذرای Master Node معیوب ادامه پیدا می کند. به محض برطرف شدن خطای گذرا، باید Body Nodeها را از سالم شدن Master Node آگاه کرد و بعد آنها را به Master Node سالم شده، تخصیص داد.
بعد از طراحی و پیادهسازی Master Node باید با بهره گرفتن از تکنیکهای پیش بینی خطا، خطاهای پایدار و گذرا که امکان وقوع دارند، شناسایی شوند. سپس با بهره گرفتن از تکنیکهای تزریق خطا آنرا به سیستم تزریق کرد تا میزان تحمل خطای Master Nodeها مشخص شود. همچنین با این کار میتوان کاستیهای موجود را برطرف کرد و یا از حضور Master Nodeها در وضعیتهایی که باعث بروز خطاهای گذرا می شود، جلوگیری کرد.
۳-۳-۳ طراحی ارگونومی
ارگونومیک[۶۹]، علمی است که بر روی سادگی استفاده از ماشین مانور میدهد. این علم با تمرکز بر روی ویژگیهای طراحی، خلاء بین کاربر و محصولات را پر می کند. طراحی ارگونومی با طوفان مغزی[۷۰] همراه است. فرایند طوفان مغزی، مرحله ای است که در آن افراد مختلف با تخصصهای مختلف گرد هم جمع میشوند و راه حلهای مناسبی را برای حل یک مشکل ارائه می دهند.
با مجتمع کردن ارگونومی در دستگاههای پوشیدنی میتوان یک ارتباط دوستانه را بین کاربر و این کامپیوترها بوجود آورد. در فرایند طراحی ارگونومی برای کامپیوترهای پوشیدنی باید سه فاکتور مهم یعنی «کاربر»، «کامپیوتر پوشیدنی» و «وظیفهی کامپیوتر پوشیدنی» را در نظر گرفت.
در بحث «کاربر»، باید فاکتورهای مختلفی از جمله سن کاربر، جنسیت کاربر، توانایی فیزیکی کاربر و غیره، مورد توجه قرار گیرند. برای مثال Body Node را میتوان به صورت یک مچبند طراحی کرد. کاربر استفاده کننده از این مچبند می تواند یک نوزاد ۶ ماهه یا یک جوان ۲۵ ساله باشد. طراحی ارگونومی با در نظر گرفتن سن کاربر، تأکید می کند که مچبند نوزاد باید بگونهای طراحی شود که سبک وزن و کوچک باشد.
در طراحی ارگونومی، فاکتور «کامپیوتر پوشیدنی» بر روی ویژگیهای مختلفی از جمله اندازه و شکل تأکید می کند. برای مثال بدون در نظر گرفتن طراحی ارگونومی، میتوان شکل ظاهری Master Node را مانند یک چاقوی کوچک بسیار زیبا طراحی کرد. با توجه به اینکه Master Node بر روی بدن کاربر پوشیده می شود، هر لحظه این امکان وجود دارد که به بدن کاربر آسیب رساند.
در نظر گرفتن فاکتور «وظیفهی کامپیوتر پوشیدنی»، در طراحی ارگونومی امری ضروری میباشد. برای مثال با در نظر گرفتن این فاکتور در طراحی ارگونومی، یک Body Node که وظیفه اش کنترل نبض کاربر است را نمی توان به صورت گوشواره طراحی و بر روی گوش نصب کرد.
۳-۳-۴ تحمل خطای شفاف
در بحث تحمل خطا همواره مسئله شفافیت باید مورد توجه قرار گیرد. تحمل خطای شفاف یعنی اینکه اقدامات و تکنیکهایی که در زمینه تحمل خطا انجام میگیرند، از دید کاربر (فرد تحت نظارت) مخفی باشند. در ادامه با بیان یک سناریو لزوم تحمل خطای شفاف بیان می شود. حالتی را میتوان تصور کرد که، پیادهسازی Body Nodeها و Master Nodeها بگونهای باشد که هر کدام از آنها حاوی یک لامپ کوچک باشند. به محض کشف خطای پایدار یا ناپایدار در هر ماژول، لامپ آن گره شروع به چشمک زدن می کند.
در نگاه اول ممکن است ایده استفاده از لامپهای چشمک زن ایدهآل به نظر برسد. زیرا فرد تحت کنترل، به محض آگاهی از وجود خطا، سعی در برطرف سازی آن می کند. اما این ایده به دو دلیل رد می شود. اولاً، افراد تحت کنترل مانند سالمندان معمولاً دانش تخصصی کافی را برای برطرفسازی خطاها ندارند. ثانیاً، مبحث شفافیت در این ایده در نظر گرفته نشده است. بگونهای که این هشدار استرس شدیدی را به فرد تحت نظارت وارد می کند و ممکن است سلامتی روحی و روانی او را به مخاطره بیاندازد. این در حالی است که ممکن بود خطا فوق گذرا باشد و خللی در کارکرد شبکه ایجاد نمیکرد و پس از مدتی برطرف میشد. به بیانی این خطای گذرا توسط مدیریت خوشبینانه قابل مدیریت بود.
به عنوان یک نتیجه گیری کلی باید خاطرنشان کرد که به دلیل ساده بودن سختافزار Body Node و Master Node و نداشتن امکاناتی از قبیل نمایشگر، عدم در نظر گرفتن شفافیت می تواند مشکلات روحی و روانی فراوانی را برای فرد تحت نظارت به همراه داشته باشد. لذا اگر بنا باشد برای Body Nodeها و Master Nodeها، خطاهایی از قبیل شارژ باتری را به کاربر هشدار داد؛ باید این هشدار توسط Mobile Node به کاربر داده شود.
۳-۳-۵ مدیریت خطا در معماری سه لایهای ارائه شده
در معماری سه لایهای ارائه شده، مبحث مدیریت خطا یکی از مباحث بنیادی است. لازم به یادآوری است که فلسفهی طراحی Body Nodeها و Master Nodeها بر روی سادگی و پیچیده نبودن مانور میدهد. به بیانی گرههای پوشیدنی مذبور فاقد عناصر هشدار خطا از جمله نمایشگر و لامپ میباشند. لذا با توجه به مطالب بیان شده و با در نظر گرفتن شفافیت، هشدار خطای Body Nodeها و Master Nodeها از طریق گره Mobile Node انجام میگیرد. به بیانی دقیقتر در گرههای پوشیدنی، تشخیص و کشف خطای هر گره به وسیله خود گره مشخص می شود. سپس گره خطای خود را به گره بالایی که Mobile Node است، اطلاع میدهد. در پایان با در نظر گرفتن بحث شفافیت اگر نیاز باشد که کاربر از این خرابی مطلع شود، این آگاهسازی از طریق گره Mobile Node صورت میگیرد.
برای درک بهتر در ادامه از دو مثال استفاده می شود. مثال اول بدین صورت است که یک Body Node، دارای یک سنسور افزونه و یک سنسور فعال است. حالتی را میتوان تصور کرد که تمامی سنسورهای این Body Node به سبب خطای پایدار از کار بیافتند. در این حالت خود Body Node، خطا و خرابی سنسورهایش را کشف می کند؛ سپس با ارسال پیامی، Mobile Node را از این خرابی آگاه می کند. در پایان Mobile Node، به Master Node آن گرهها فرمان میدهد تا Body Node معیوب را خاموش و حالت Body Node افزونهی آن را از حالت standby به حالت فعال تغییر دهد.
مثال دوم بدین شرح میباشد که باتری Master Node فیزیکی از حد آستانه پایینتر باشد. در اینصورت خود Master Node، خطای باتریش را کشف می کند و با ارسال پیامی Mobile Node را از این خرابی آگاه میسازد. بلافاصله در این شرایط، Mobile Node با یک پیام متنی به کاربر هشدار شارژ باتری Master Node را میدهد و همزمان به Body Nodeهای Master Node معیوب فرمان میدهد تا اطلاعاتشان را برای Master Node مجازی ارسال کنند.
به عنوان یک نتیجه گیری کلی باید بیان کرد که مدیریت خطا در معماری ارائه شده به صورت سلسله مراتبی است. بدین صورت که پیامها از گرههای پایینی به گرههای بالایی میروند و فرمانها از گرههای بالایی به گرههای پایینی میآیند. این بدین معنی است که هرگز گره پایینی فرمانی را به گره بالایی نمیدهد.
۳-۳-۶ Mobile Nodeها
امروزه دستگاههای Mobile Node به سرعت در حال پیشرفت هستند، این امر باعث شده است که محدودیتهای دستگاه موبایل نسبت به کامپیوترهای پوشیدنی بسیار کمتر باشد. از اینرو دستگاههای موبایل دارای نرمافزار و سختافزار پیچیدهتری میباشند، بگونهای که آنها قادر به انجام پردازشهای سنگین و همچنین توانایی پشتیبانی از برنامه ها و نرمافزارهای پیچیده را دارند. لذا این گرهها بحثهای مدیریت داده ها را به صورتی عالی انجام می دهند و به نحوی شایسته با ابر ارتباط برقرار می کنند.
لازم به ذکر است که دستگاه موبایل می تواند هر کامپیوتر سیاری از قبیل یک PDA، گوشی موبایل، تبلت، لپتاپ و … باشد. یعنی دستگاه موبایل می تواند یک گوشی سادهی موبایل باشد که حتی امکاناتی از قبیل بلوتوث، پشتیبانی از اینترنت و نصب برنامه ها و نرمافزارهایی که برای ارتباط با کامپیوترهای پوشیدنی و ابر است را نداشته باشد. همچنین یک دستگاه موبایل می تواند یک لپتاپ پیشرفته باشد که چندین تکنولوژی ارتباطی، CPU قدرتمند، چندین ترابایت حافظه و قابلیت پشتیبانی از نرمافزارهای پیشرفته را دارد.
با توجه به مطالب بیان شده، معماری سه لایهای پیشنهادی از چالشهایی رنج میبرد. از آنجا که دستگاههای موبایل رابط ارتباط بین کامپیوترهای پوشیدنی و ابر هستند، نقش و عملکردشان نیاز به بررسی دقیقتری دارد. برای مثال اگر در لایهی دوم معماری پیشنهادی، از یک گوشی موبایل ساده که فاقد هرگونه تکنولوژی ارتباطی و فاقد قابلیت نصب نرمافزار است، استفاده شود، آنگاه لایهی دوم قادر به انجام وظایفش نیست. همچنین میتوان حالتی را تصور کرد که در لایهی دوم، یک لپتاپ پیشرفته مورد استفاده قرار بگیرد. در نگاه اول به نظر میرسد که این لپتاپ پیشرفته بهترین گزینه برای لایهی دو میباشد اما اینگونه نیست. اولاً چنین دستگاهی گران است و همچنین دستگاه لایهی دو همیشه باید در حالت روشن یا آمادهباش باشد، این در حالیست که اگر لپتاپ فوق را بخواهیم در حالت روشن نگه داریم، در طی مدت زمان محدودی شارژ باتریش به اتمام میرسد. به علاوه، لپتاپ قابل حمل نیست زیرا نسبت به گوشی موبایل سنگینتر است به گونه ای که افراد تحت نظارت، بخصوص افراد بیمار و سالمند قادر به تحمل وزن این دستگاه برای مدت طولانی نیستند.
نتیجتاً، در انتخاب دستگاه مناسب برای لایهی دو باید دقت شود. دستگاه سیارِ انتخابی باید توانایی پشتیبانی از تکنولوژیهای ارتباطی مختلف را داشته باشد و قابلیت نصب و پشتیبانی از نرمافزار ارتباطی بین لایه های اول و سوم را داشته باشد. همچنین این دستگاه نباید گران و سنگین باشد، به گونه ای که تمامی اقشار جامعه و نیز افراد با سنین مختلف قادر به تهیه و استفاده از آن باشند.
خطاهای سختافزار: سختافزار Mobile Nodeها به مراتب نسبت به Body Nodeها و Master Nodeها از تهدیدات و خطرات کمتری رنج میبرند. اما هر لحظه این امکان وجود دارد که گره Mobile Node به سبب خطای پایدار خراب شود، بگونهای که قادر به ادامه انجام فعالیتش نباشد. لازم به ذکر است که خرابی فرستنده، گیرنده و باتری Mobile Node و همچنین خالی شدن باتری آن، منجر به وقوع خطای پایدار در این گره می شود. در این حالت استفاده از یک Mobile Node افزونه اولین راهحلی است که به ذهن میرسد. اما واقعیت امر این است که هزینه Mobile Nodeها گران است، لذا استفاده از واحد رزرو برای Mobile Node با تحمل هزینه همراه است. به بیانی استفاده از واحد افزونه و تعداد واحدهای افزونه بستگی به کاربرد دارد، به طور مثال اگر کاربرد حساس باشد میتوان با تحمل هزینه مالی از ۱۰ عدد واحد رزرو استفاده کرد.
اگر گره Mobile Node به سبب خطای پایدار خراب شود آنگاه انتقال اطلاعات از Master Node به ابر معنی ندارد. زیرا Master Node فاقد نمایشگر میباشد و به اندازه Mobile Node امکانات ارتباطی و نرمافزاری ندارد، پس در این حالت Master Node به عنوان یک هشدار دهنده عمل می کند. Master Node هشدار خرابی Mobile Node را برای مرکز ابری ارسال می کند، همچنین با در نظر گرفتن شفافیت، توسط بلوتوث یک پیام متنی را به تمامی Mobile Nodeهایی که در اطراف شخص تحت نظارت قرار دارند، ارسال می کند. در واقع این پیام، هشدار جایگزینی یا تعمیر Mobile Node را میدهد. بعد از این هشدار، در صورت موجود بودن واحد رزرو، میتوان از آن استفاده کرد. شایان ذکر است که با خراب شدن واحد افزونه، این چرخه دوباره ادامه پیدا می کند.
از مطالب بیان شده میتوان به این نتیجه رسید که با خراب شدن Mobile Node باید Master Nodeها به منظور هشدار دادن، بلافاصله از این خرابی آگاه شوند. همچنین برای اینکه گره Master Node بتواند از وضعیت گره Mobile Node خبردار شود، در زمانهای خاصی نیاز به برقراری ارتباط با این گره را دارد. به طور مثال گره Mobile Node می تواند هر ۱۰۰ ثانیه یکبار، پیام «سلام Master Node» را برای Master Node ارسال کند، که عدم دریافت این پیام از سوی Master Nodeها، نشانهی خراب بودن Mobile Node است. که این مسئله در بخشهای قبلی به صورت مفصل مورد بررسی قرار گرفت.
سناریویی را میتوان تصور کرد که گره Mobile Node سالم و بینقص باشد و گیرنده Master Node مشکل داشته باشد. ممکن است این امر باعث شود که Master Node به اشتباه تشخیص دهد Mobile Node خراب است، بگونهای که اقدام به ارسال هشدار اشتباهی برای ابر کند.
در شبکه های چند Master Nodeی، به منظور برطرفسازی مشکل فوق میتوان از تکنیک رأیگیری استفاده کرد. بدین صورت که برای انجام فرایند رأیگیری تعداد Master Nodeهای فیزیکی فرد باشند. روش کار بدین صورت است که از روش رأیگیری بر اساس رأی اکثریت استفاده می شود. یعنی اکثریت Master Nodeها با هم سالم بودن یا نقص داشتن Mobile Node را مشخص می کنند. نتیجتاً در شبکه های چند Master Nodeی، میتوان مشکل سناریوی بالا را با بهره گرفتن از تکنیک رأیگیری حل کرد.
ممکن است با بررسی سناریوی بالا این سؤال مطرح شود که در شبکه های تک Master Nodeی اگر گیرندهی Master Node دچار مشکل شود، تکلیف چیست؟ به منظور پاسخ به سؤال فوق در تحقیق حاضر الگوریتمی تحت عنوان «شناسایی گیرنده کَر» مطرح می شود. در الگوریتم مذبور اگر گیرنده Master Node برای مدت زمان مشخصی به کانالهای بین خودش و Body Node و Mobile Node گوش کند و چیزی را نشنود، آنگاه این چنین تشخیص داده می شود که گیرندهی Master Node کر است. عملکرد الگوریتم «شناسایی گیرنده کر» به شرح زیر است.
- در بازه زمانی X به لینک بین Master Node و Mobile Node گوش کن، اگر پیام «سلامMaster Node» را از Mobile Node دریافت نکردی، به مرحله ۲ برو، در غیر اینصورت از الگوریتم خارج شو (X دو برابر فاصله زمانی است که Mobile Node پیامهایش را در شبکه پخش می کند).
- از این لحظه تا زمان Y، اگر پیامهای «سلام ارباب» را از سوی Body Nodeها دریافت نکردی یا دادههایی را از Body Nodeها دریافت نکردی به مرحله ۳ برو، در غیر این صورت به مرحله ۴ برو.
- گیرنده اصلی Master Node خراب است، تا ابد آنرا خاموش و گیرنده standby، را تا ابد روشن کن، سپس به مرحله یک برو.
- یک پیام هشدار مبنی بر خراب بودن Mobile Node، برای ابر و موبایلهای اطراف ارسال کن.
باتری: خوشبختانه شرکتهای سازندهی Mobile Nodeها امروزه به نوع باتری محصولاتشان توجه ویژهای دارند. بگونهای که این باتریها با داشتن حجم کم میتوانند برای ساعتهای طولانی انرژی لازم را در خود ذخیره کنند. علاوه بر مزایای فوق باید خاطرنشان کرد که باتریهای Mobile Nodeها قابل شارژ میباشند، همچنین در صورت خرابی باتری، میتوان آن را به سادگی تعویض کرد.
تکنولوژی ارتباطی: با توسعه و پیشرفت Mobile Nodeها، آنها قادر به پشتیبانی از انواع مختلف تکنولوژیهای ارتباطی میباشند. همچنین کارخانههای سازندهی این دستگاهها، معمولاً چندین نوع مختلف از تکنولوژیهای ارتباطی را به صورت همزمان در یک Mobile Node تعبیه می کنند. لذا مباحثی که در بحث انتخاب تکنولوژی ارتباطی وجود دارند از قبیل میزان مصرف باتری، برد انتقال اطلاعات، روش کشف خطا در تکنولوژی ارتباطی و حجم ماژول، دیگر برای Mobile Nodeها نگران کننده نیست، زیرا کارخانههای سازنده این مسائل را در طراحی و پیادهسازی به خوبی مد نظر قرار دادهاند بطوریکه کاربر می تواند با توجه به شرایط، مناسبترین تکنولوژی را انتخاب کند.
اما دلایل مختلفی از جمله قطعی اینترنت می تواند باعث قطع ارتباط Mobile Node با ابر شوند. در چنین شرایطی Mobile Node به صورت اتوماتیک و از طریق پیامک یا تماس اضطراری، دکتر و مسئول معماری سه لایهای را از این قطعی ارتباط آگاه می کند.
خطاهای نرمافزار:نرمافزار، مهمترین قسمت در لایهی دوم از معماری پیشنهادی است. پس نرمافزار دستگاه موبایل باید دارای امکانات و تواناییهای ویژهای باشد که سازگاری و قابلیت انطباق با هر دستگاه موبایلی، از جمله این موارد میباشد. حالتی را در نظر بگیرید که نرمافزاری بسیار عالی برای لایهی دوم این معماری طراحی و ایجاد شده است، بگونهای که این نرمافزار فقط بر روی سیستمعاملهای اندروید نصب می شود. اگر چه نرمافزار فوق برای این معماری عالی است اما لایهی دوم معماری را به دستگاههایی که سیستمعاملشان اندروید است، محدود می کند. به بیانی دیگر نرمافزار لایهی دوم بر روی سیستمعاملهایی که اندروید نیستند نصب نمی شود. این در حالیست که کاربر باید در انتخاب دستگاه لایهی دوم آزاد باشد بطوریکه با توجه به وضعیت مالی و صلیقهاش، آزادانه دستگاه موبایل خود را بخرد. لذا نرمافزار لایهی دوم باید قابلیت انطباق و سازگاری را با هر دستگاه موبایلی داشته باشد. یک راهحل این است که برای هر سیستمعامل یک نسخه از نرمافزار فوق طراحی و ایجاد شود.
کدهای بداندیش[۷۱] دیگر تهدیدات برای نرمافزار دستگاههای لایهی دو میباشند. لایهی دوم به منظور ارتباط با ابر، دسترسی مستقیم به اینترنت دارد، این در حالیست که اینترنت بخاطر وجود افراد غیرمجاز و برنامه های مخرب، فضای ناامنی است. همچنین معمولاً افراد تحت نظارت مانند سالمندان، کاربرانی هستند که اطلاعاتی درباره کامپیوترها ندارند و خیلی سریع در دام افراد غیرمجاز و برنامه های مخرب اسیر میشوند، بگونهای که لایهی دوم خراب می شود. به منظور تحمل این خرابی دو روش پیشنهاد می شود که البته هر دو روش باید با هم و در کنار هم مورد استفاده قرار بگیرند.
روش اول این است که افراد متخصص برای دستگاه لایهی دوم آنتیویروسی را در نظر بگیرند و نصب کنند که همیشه فعال باشد، و از آنجا که این لایه بخاطر ارتباطش با ابر دارای اینترنت است به صورت اتوماتیک و بدون اطلاع کاربر به مرکز پشتیبانی آنتیویروس وصل شود و آنرا بروز رسانی کند. روش دوم این است که برای اجرای نرمافزار کاربر فقط آن نرمافزار را باز کند بطوریکه ارتباط لایه دوم با کامپیوترهای پوشیدنی و ابر و همچنین پردازش داده ها در لایه دوم به صورت اتوماتیک و بدون دخالت کاربر صورت پذیرد. همچنین برای اجتناب از آسیب رساندن کاربر به نرمافزار، میتوان محیط نرمافزار را از دید کاربر مخفی کرد. بدین صورت که به محض اجرای نرمافزار فقط آیکن کوچکی در گوشهی صفحه ظاهر شود و کاربر قادر به مشاهده محیط نرمافزار و ایجاد تغییر در نرمافزار، نباشد.
اگرچه میتوان از نرمافزار لایهی دوم در برابر خطرات محافظت کرد، اما یک واقعیت انکارناپذیر وجود دارد و آن این است که این احتمال وجود دارد که نرمافزار لایهی دو دچار نقص و خرابی شود. به بیانی دیگر، هر لحظه این امکان وجود دارد که بخاطر دلایل گوناگون، نیاز به نصب مجدد نرمافزار باشد. در این صورت اگر کاربر تحت نظارت قادر به نصب نرمافزار نباشد، آنگاه با مسئول معماری سه لایهای تماس میگیرد، سپس فرد مسئول از راه دور و از طریق اینترنت نرمافزار معیوب را حذف و نرمافزار جدید را نصب می کند. اما اگر کاربر تحت نظارت قادر به نصب نرمافزار باشد، می تواند با هماهنگی و به فرمان افراد متخصص که مسئول معماری سه لایهایاند، نرمافزار خراب شده را حذف و نرمافزار جدید را نصب کند.
در بحث نصب مجدد نرمافزار میتوان با روشی کاملاً ساده، نصب آنرا برای افراد با هر دانشی امکان پذیر کرد. بدین صورت که یک نسخه از نرمافزار سالم در مکانی از حافظه گره موبایل قرار داده شود که این نسخه افزونه است. سپس بعد از خرابی نرمافزار، باید کاربر با مسئول سه لایه تماس بگیرد و به منظور کسب اجازه از او یک نام کاربری و رمز دریافت کند. حال کاربر می تواند نرمافزار افزونه را اجرا کند و نام کاربری و رمز را وارد کند تا نرمافزار نصب شود. فرایند نصب باید بدین صورت باشد که کاربر پس از وارد کردن نام کاربری و رمز عبور هیچ دخالتی در حذف نرمافزار خراب و نصب نرمافزار جدید نداشته باشد به بیانی باید این دو کار به صورت اتوماتیک انجام گیرند.
اما در این فرایند نصب، ممکن است این سؤال مطرح شود که چه نیازی به کسب اجازه از مسئول معماری سه لایهای است؟ این سؤال را میتوان با این سؤال پاسخ داد که در حین خرابی نرمافزار لایهی دو، تکلیف داده ها و اطلاعات ارسالی از کامپیوترهای پوشیدنی به دستگاه موبایل چه می شود؟ به این سؤال در بخشهای آتی جواب داده می شود. اما فعلاً باید خاطرنشان کرد که این معماری سه لایهای باید در برابر خطا و خرابی تحملپذیر باشد و تحت هر شرایطی در حال انجام صحیح فعالیت باشد. لذا در زمانی که نرمافزار لایهی دو خراب است باید با هماهنگی مسئول معماری سه لایهای این خرابی را تحمل کرد.
در زمانی که نرمافزار لایهی دوم خراب است، به منظور تحمل خرابی باید مانع از نابودی داده های ارسالی از کامپیوترهای پوشیدنی شد. به علاوه، اطلاعات تولید شده قبلی، توسط لایهی دو نیز، باید از بین نروند. برای چالش فوق دو راهحل پیشنهاد می شود.
راهحل اول این است که دستگاه لایهی دو، داده های دریافتی از کامپیوترهای پوشیدنی را بدون دخالت نرمافزار لایه دو، در حافظه خودش و در درون یک پوشه تحت عنوان «داده های حساس» ذخیره کند. همچنین نرمافزار لایه دو، تمامی اطلاعات تولید شده توسط خود را در حافظه موبایل و در پوشه ذکر شده، ذخیره کند. بطوریکه اگر بنا به هر دلیلی نرمافزار لایه دوم خراب شد، بتوان بعد از نصب مجدد نرمافزار، این داده ها و اطلاعات را مورد بررسی قرار داد. شایان ذکر است که نرمافزار لایه دوم نرمافزاری است که توسط مسئولین معماری سه لایهای ایجاد می شود؛ یعنی با خراب شدن این نرمافزار، خللی در کارکرد سایر نرمافزارها و سیستمعامل لایه دو بوجود نمیآید.
در راهحل اول باید به فاصلهی زمانی ذخیره شدن داده ها در پوشه «داده های حساس» و بررسی شدن آنها توسط نرمافزار دوباره نصب شده، دقت شود. به طور مثال حالتی را در نظر بگیرید که نرمافزار لایه دو خراب است. در این حین کامپیوترهای پوشیدنی داده های نشان دهنده ضربان قلب بیمار را برای موبایل ارسال می کنند، داده های فوق در پوشه «داده های حساس» ذخیره میشوند. این داده ها نشان می دهند که ضربان قلب بیمار از دامنه نرمال خارج شده است و وضعیت سلامت بیمار وخیم است. در این سناریو نرمافزار لایه دوم به فاصلهی هفت ساعت بعد نصب مجدد می شود، یعنی این داده های ضربان قلب بعد از هفت ساعت بررسی میشوند. این در حالی است که سلامت بیمار هفت ساعت پیش به خطر افتاده و او در آن لحظه نیاز به کمک داشته و حال ممکن است دیر شده باشد.
راهحل دوم به منظور تحمل خرابی نرمافزار استفاده از ابر است. این راهحل مشکل راهحل اول را ندارد، یعنی مواقعی که فاصلهی بین زمان ذخیره شدن داده ها در حافظه موبایل و بررسی آنها توسط نرمافزار دوباره نصب شده، زیاد باشد.
روش کار بدین صورت است که به محض خراب شدن نرمافزار لایه دو، بصورت اتوماتیک محتوای پوشه «داده های حساس» برای ابر ارسال می شود. در این روش بجای انتظار کشیدن برای نصب مجدد نرمافزار، داده ها و اطلاعات پوشه «داده های حساس» به منظور بررسی، مستقیماً به ابر فرستاده میشوند. این ارسال اطلاعات نمیتواند توسط Master Node فیزیکی انجام گیرد، زیرا Master Node فیزیکی به دلیل محدودیتهای سختافزاری و نرمافزاری توانایی انجام وظایف Mobile Nodeرا ندارد. از این اینرو پیشنهاد می شود که لایهی دوم، خودش داده های دریافتی از کامپیوترهای پوشیدنی را به ابر ارسال می کند. در حقیقت درست است که نرمافزار لایهی دو خراب است اما میتوان داده های ذخیره شده در حافظه دستگاه لایه دو را توسط دستگاه موبایل به ابر ارسال کرد تا خود ابر مسئولیت بررسی این داده ها و انجام تصمیمات بلادرنگ را بر عهده گیرد.
فصل چهارم
جمعبندی و نتیجه گیری
۴-۱ مقدمه
هدف اصلی سیستم تحمل خطا، بهبود اتکاپذیری سیستم است. لذا در کلیه سیستمها در نظر گرفتن بحث اتکاپذیری ضروری است. در این فصل ابتدا مفاهیم اتکاپذیری به همراه نحوه محاسبه اتکاپذیری شرح داده میشوند که این مطالب برگرفته از منبع [۸۵] میباشند. در نهایت قابلیت اطمینان گرههای Body Node، Master Node و Mobile Node محاسبه و مقایسه می شود. همچنین قابلیت اطمینان برای معماری سه لایهای ارائه شده، مورد ارزیابی وتحلیل قرار میگیرد.
۴-۲ تعاریف پایه
در بخشهای آتی λ،µ و C که بترتیب نمادهای نرخ خرابی، نرخ تعمیر و پوشش خطا هستند، به دفعات مورد استفاده قرار میگیرند. لذا در ادامه به شرح این موارد پرداخته می شود.
نرخ خرابی یا λ، تعداد خرابیها را در هر واحد زمان پیش بینی می کند. به عنوان مثال اگر خرابیهای یک پردازنده به صورت میانگین هر هزار ساعت یکبار باشد، آنگاه .
یک تخمین خام از نرخ خرابی سیستم می تواند بوسیله جمع نرخ خرابی مؤلفه ها(λiها) به صورت زیر، انجام گیرد. لازم به ذکر است که n تعداد مؤلفه های سیستم است.
رابطه (۴-۱):
شایان ذکر است که در طرف مقابل نرخ خرابی نرخ تعمیر وجود دارد. نرخ تعمیر که توسط µ مشخص می شود به تعداد تعمیرها در واحد زمان اشاره دارد.
پوشش خطا را که با C نشان می دهند، یعنی احتمال اینکه با وجود خطا، فعالیتهای مورد انتظار سیستم انجام شوند؛ بگونهای که سیستم با شکست مواجه نشود. در ادامه چند پوشش خطا معرفی می شود.
پوشش کشف خطا: (وجود خطا | کشف خطا)C=P
پوشش مکان یابی خطا: (وجود خطا | مکان یابی خطا)C=P
پوشش محدودسازی خطا: (وجود خطا | محدودسازی خطا)C=P
پوشش ریکاوری خطا: (وجود خطا | ریکاوری خطا)C=P
۴-۳ اتکاپذیری
اتکاپذیری یعنی مقدار توانایی یک سیستم در فراهم کردن سرویسهایی که قابلیت اطمینان قابل قبول دارند.
اتکاپذیری شامل ویژگیهایی از قبیل قابلیت اطمینان، دسترسپذیری، ایمنی، قابلیت نگهداری و آزمونپذیری، میباشد. از بین این ویژگیها قابلیت اطمینان، دسترسپذیری و ایمنی مهم میباشند. با توجه به کاربرد، یکی یا بیشتر از این ویژگیها برای ارزیابی رفتار سیستم مناسب است. به طور مثال برای یک سیستم ATM[72]، قابلیت دسترسپذیری و برای یک سیستم کنترل نیروگاه اتمی، ایمنی مهم است؛ این در حالیست که برای معماری سه لایهای ارائه شده قابلیت اطمینان حائز اهمیت میباشد.
قابلیت اطمینان[۷۳]: قابلیت اطمینان را با R(t) نمایش می دهند. یعنی احتمال شرطی اینکه سیستم در بازهی زمانی [۰,t] بدون نقص و خطا کار کند به شرط اینکه سیستم در زمان «۰» بصورت صحیح در حال کار بوده باشد. در واقع، قابلیت اطمینان یک معیار برای تحویل پیوستهی سرویس به صورت صحیح میباشد. شایان ذکر است که اگر سیستمی بخواهد بدون هیچگونه وقفهای در حال انجام عملیات باشد، نیاز به قابلیت اطمینان بالا دارد.
دسترسپذیری[۷۴]: در برخی کاربردها تعداد خرابیها و زمان مورد نیاز برای تعمیر خرابیها مهم است. در چنین کاربردهایی دسترسپذیری اهمیت فراوانی دارد. دسترسپذیری را که با A(t) نشان می دهند، یعنی احتمال اینکه در زمان t، سیستم در حال انجام عملیات به صورت صحیح باشد. به بیانی A(T) میانگین دسترسپذیری در بازهی[۰,T]است که بازه فوق می تواند طول عمر سیستم یا زمان اتمام یک کار خاص باشد.
رابطه (۴-۲):
ایمنی[۷۵]: در بحث ایمنی شکستها به دو دستهی شکستهای ایمن و شکستهای غیر ایمن تقسیم میشوند. شکستهای ایمن یعنی با وقوع شکست اتفاق ناگواری رخ ندهد. این در حالیست که در شکست غیر ایمن، اتفاق ناگواری رخ میدهد، برای مثال فاجعه نیروگاه اتمی چرنوبیل[۷۶] نمونه ای از این نوع شکست است. ایمنی را که با S(t) نشان می دهند یعنی احتمال اینکه سیستم یا بصورت صحیح کار کند یا در حالتهای شکست ایمن[۷۷]، سیستم ادامه انجام عملیات خود را قطع کند.
۴-۴ محاسبهی اتکاپذیری با بهره گرفتن از بلوک دیاگرامهای قابلیت اطمینان
به منظور محاسبهی اتکاپذیری میتوان از دو روش بلوک دیاگرامهای قابلیت اطمینان و فرایندهای مارکف استفاده کرد. در ادامه معماری سه لایهای ارائه شده با بهره گرفتن از بلوک دیاگرامهای قابلیت اطمینان مورد ارزیابی قرار میگیرد؛ از اینرو در ادامه به شرح کامل این روش پرداخته می شود. این درحالیست که روش فرایندهای مارکف بصورت مختصر در بخش افزونگی standby شرح داده می شود.
محاسبه قابلیت اطمینان: محاسبه با این روش نیازمند این است که سیستم به دو قسمت سری و موازی تقسیم شود. بعد قابلیت های اطمینان قسمت های فوق که همان Rها هستند، محاسبه شوند. سرانجام، جواب کلی از قابلیت های اطمینان بخشها، تشکیل می شود. برای یک سیستم با n مؤلفه، که Ri(t) قابلیت اطمینان مؤلفهی iام است، قابلیت اطمینان سیستم به صورت زیر محاسبه می شود.
رابطه (۴-۳):
برای یک ساختار سری
برای یک ساختار موازی
برای یک سیستم در حالت سری، باید همه مؤلفه های سیستم در حال اجرا و عملیاتی باشند تا سیستم بتواند بصورت صحیح کار کند از اینرو .
اما برای یک سیستم در حالت موازی، فقط یکی از مؤلفه ها نیاز دارد که عملیاتی باشد. بنابراین عدم قابلیت اطمینان[۷۸] یک سیستم موازی برابر است با احتمال اینکه همه n مؤلفه خراب شوند، یعنی و در نتیجه قابلیت اطمینان از رابطه بدست می آید.
محاسبهی دسترسپذیری: اگر فرض شود که زمانهای خرابی و تعمیر مستقل از یکدیگر هستند، آنگاه میتوان به منظور محاسبهی دسترسپذیری سیستم از بلوک دیاگرامهای قابلیت اطمینان استفاده کرد. این وضعیت زمانی رخ میدهد که سیستم به اندازه کافی منابع افزونه به منظور تعمیر همزمان همه مؤلفه های معیوب دارد.
برای یک سیستم با n مؤلفه که Ai(t) دسترسپذیری مؤلفهی iام است، دسترسپذیری کلی سیستم بصورت زیر است.
رابطه (۴-۴):
برای یک ساختار سری
برای یک ساختار موازی
برای یک سیستم در حالت سری، باید همه مؤلفه های سیستم در حال اجرا و عملیاتی باشند تا سیستم بتواند بصورت صحیح کار کند از اینرو .
اما برای یک سیستم در حالت موازی، فقط یکی از مؤلفه ها نیاز دارد که عملیاتی باشد. در نتیجه دسترسپذیری از رابطه بدست می آید.
۴-۵ افزونگی TMR
روشهای افزونگی غیرفعال از قبیل TMR و NMR بجای کشف خطا، آنها را میپوشانند بگونهای که با وجود خطا، مقادیر صحیحی در خروجی پدیدار می شود.
ارزیابی قابلیت اطمینان: یک سیستم TMR تا زمانی بصورت صحیح کار می کند که حداقل دو ماژول از سه ماژول آن بصورت صحیح کار کنند. با فرض اینکه رأی دهنده بیعیب باشد، قابلیت اطمینان یک سیستم TMR به شرح زیر است.
رابطه (۴-۵): RTMR= R1R2R3 + (۱-R1)R2R3 + R1(1-R2)R3 + R1R2(1-R3)
R1R2R3 یعنی احتمال اینکه هر سه ماژول بیعیب باشند و به صورت صحیح کار کنند.(۱-R1)R2R3 یعنی احتمال اینکه اولین ماژول خراب و دو ماژول دیگر سالم باشند.R1(1-R2)R3 یعنی احتمال اینکه ماژول دوم خراب و ماژولهای اول و سوم سالم باشند. R1R2(1-R3) یعنی احتمال اینکه ماژولهای اول و دوم بیعیب و ماژول سوم خراب باشد. اگر R1=R2=R3=R باشد، آنگاه معادله بالا به معادله RTMR= 3R2 – ۲R3تبدیل می شود. از آنجا که نرخ خرابی مؤلفه ها در ارزیابی قابلیت اطمینان حائز اهمیت است، میتوان Rها را بر اساس λ و t نوشت. یعنی اگر λ نرخ خرابی ثابت و t زمان باشد، آنگاه R(t)=e-λt میباشد. در نتیجه فرمول بالا را میتوان بصورت زیر نوشت.
رابطه (۴-۶): RTMR(t) = 3e-2λt - ۲e-3λt
۴-۶ افزونگی standby
افزونگیهای فعال به منظور دستیابی به تحمل خطا، ابتدا خطاهای رخ داده در سیستم را شناسایی می کنند، سپس عملیات لازم را به منظور ریکاوری سیستم و برگشت سیستم به حالت عملیاتی، انجام می دهند.در سیستمهای standby بین مؤلفه های سیستم وابستگی وجود دارد، از اینرو اینگونه سیستمها با بهره گرفتن از مدلهای مارکف آنالیز میشوند.
محاسبه با بهره گرفتن از فرایندهای مارکف: فرایندهای مارکف برای ارزیابی وابستگی سیستم، مورد استفاده قرار میگیرند. هدف فرایندهای مارکف محاسبهی Pi(t) است، یعنی احتمال اینکه سیتم در زمان t در وضعیت i باشد. اگر در وضعیت ۱، تمامی مؤلفه ها در حال کار و در محیط عملیاتی باشند و با فرض اینکه در زمان t=0، سیستم در وضعیت یک است آنگاه P1(0)=1 . از اینرو سیستم در هر زمانی فقط می تواند در یک حالت باشد یعنی Pi(0), پس
رابطه (۴-۷):
به منظور تعیین Pi(t) از معادلات دیفرانسیلی که معادلات انتقال حالت نامیده میشوند، استفاده می شود. معمولاً معادلات انتقال حالت به شکل ماتریس ارائه میشوند. در ماتریس M که ماتریس انتقال نامیده می شود، مؤلفهی mij، نرخ انتقال بین حالت i و j است. در این ماتریس ایندکس i برای شمارهگذاری ستونهای ماتریس و از ایندکس j برای شمارهگذاری سطرها استفاده می شود. ساختار ماتریس M به شرح زیر است.
در ماتریس فوق، k تعداد حالات در نمودار انتقال حالت است. در حالت طبیعی در آنالیز قابلیت اطمینان و دسترسپذیری، فرض می شود که مؤلفه ها در یکی از دو حالت عملیاتی یا شکست[۷۹] قرار دارند. یعنی اگر یک سیستم شامل n مؤلفه باشد آنگاه است. اما در آنالیز ایمنی، مؤلفه های سیستم میتوانند در یکی از سه حالت عملیاتی، شکست ایمن و شکست غیر ایمن قرار بگیرند، لذا است.
در ماتریس انتقال، مجموع عناصر هر ستون باید برابر با صفر شود. برای رسیدن به هدف فوق، در هر ستون برای حالتی که i=j است، mij را بگونهای مقدار دهی میکنیم که حاصل جمع ستون مورد نظر صفر شود.
برای مثال نمودار انتقال حالت یک سیستم تک مؤلفهای که شامل دو حالت عملیاتی (وضعیت ۱) و حالت شکست (وضعیت ۲) است به صورت زیر میباشد. لازم به ذکر است که λ نرخ خرابی است.
شکل ۴-۱: دیاگرام انتقال حالت یک سیستم تک مؤلفهای
ماتریس انتقال برای دیاگرام بالا به شکل زیر میباشد.
توضیح ماتریس M بدین شرح میباشد که نرخ انتقال بین وضعیتهای یک و دو برابر λ است، بنابراین m12=λ ؛ با توجه به اینکه جمع هر ستون باید صفر شود پس میباشد.
همچنین میتوان معادلات انتقال حالت را بصورت زیر از ماتریسهای انتقال حالت استخراج کرد.
رابطه (۴-۸):
ادامه کار بدین صورت است که با حل معادلات انتقال حالت، Pi(t)ها مشخص میشوند. سپس قابلیت اطمینان، دسترسپذیری و ایمنی میتوانند بوسیلهی محاسبهی مجموع تمام حالات عملیاتی محاسبه شوند.
ارزیابی قابلیت اطمینان در سیستمهای standby: در این سیستمها فرض بر این است که مؤلفهی افزونه، نمیتواند در حالت standby خراب شود. شکل ۴-۱ یک سیستم standby را نشان میدهد که در آن ماژول ۱ اصلی و ماژول ۲ در حالت standby است.
شکل ۴-۲: یک سیستم standby با یک مؤلفهی افزونه
همچنین وضعیتهای مختلف سیستم به شرح زیر است. فرض بر این است که اگر مؤلفهی افزونه در حالت standby باشد، نمیتواند خراب شود یعنی وضعیت(O,F) اصلاً رخ نمیدهد.
شماره حالت | ۲ |
۱ مؤلفه ها |
۱ | O | O |
۲ | O | F |
۳ | F | F |
دیاگرام انتقال حالت سیستم نیز در شکل ۴-۲مشخص میباشد.
شکل ۴-۳: دیاگرام انتقال حالت یک سیستم standby با یک مؤلفهی افزونه
زمانی که مؤلفهی اصلی خراب می شود، یک انتقال از حالت ۱ به حالت ۲ رخ میدهد. اگر سیستم در حالت ۲ باشد و مؤلفهی standby آن خراب شود، آنگاه یک انتقال از حالت ۲ به حالت ۳ رخ میدهد. بنابراین حالتهای ۱ و ۲ حالات عملیاتی میباشند، این در حالیست که حالت ۳ به دلیل معیوب بودن هر دو مؤلفه، حالت شکست سیستم است. با توجه به مطالب بیان شده، معادلات انتقال حالت به شرح زیر است.
رابطه (۴-۹):
P3(t) تنها حالت شکست سیستم است، از اینرو قابلیت اطمینان سیستم برابر است با حاصل جمع P1(t) و P2(t). یعنی . با فرض اینکه λ۱=λ۲ آنگاه، معادله بالا به صورت زیر ساده می شود.