محاسبات پوشیدنی در بسیاری از کاربردها از قبیل تشخیص فعالیتهای فرد[۱۶][۸][۹][۱۰][۱۱][۱۲]، تشخیص افتادن[۱۷][۱۳][۱۴][۱۵][۱۶][۱۷]، کاربردهای سلامت و بهداشت [۱۸][۱۹][۲۰][۲۱][۲۲]، تحلیل فعالیتهای ورزشکاران [۲۳][۲۴][۲۵]، حوزه های کشاورزی [۲۶]، نظامی [۲۷]، سرگرمی و قمار [۲۸]، مورد استفاده قرار میگیرند. این استفادههای وسیع نشان می دهند که گرایش سیستمهای محاسباتی آینده به سمت ناهمگنی و فراگیری است [۲۹].
مسئله تشخیص فعالیتهای انسانی به دلیل نقشِ مادر بودن در سایر مسئلهها به عنوان یک مسئله کلاسیک مورد توجه قرار گرفته است. تشخیص فعالیتهای انسانی در حوزه های وسیعی از جمله حوزه سلامت [۳۰][۳۱][۳۲]، ورزش [۳۳][۳۴]، نظامی، سرگرمیها و بازیها، مسائل حفاظتی و غیره استفاده می شود .
در حوزه سلامت به دلیل هزینهها و محدودیتها نمی توان بیماران را در بیمارستانها و کلینیکهای پزشکی برای مدت طولانی نگهداری کرد. به علاوه، کنترل علائم حیاتی بیمار توسط افراد به صورت پیوسته و در دراز مدت، کسل کننده است بطوریکه ممکن است فرد ناظر برداشتِ اشتباهی را از داده های گردآوری شده داشته باشد. در اینگونه نظارتها فرد ناظر، باید تخصص یا مهارت لازم را برای کنترل علائم حیاتی بیمار داشته باشد. از طرفی هم یک متخصص مانند یک دکتر نمیتواند به مدت طولانی مسئول کنترل یک بیمار باشد زیرا بیماران زیادی به تخصص او و درمان شدن نیاز دارند. برای غلبه بر محدودیتهای ذکر شده، شبکه های پوشیدنی میتوانند یک گزینه خوب باشند [۳۵][۳۶][۳۷]. از مزایای این شبکه ها این است که کنترل وضعیت بیمار به صورت اتوماتیک و پیوسته، در دراز مدت صورت میگیرد. به علاوه دکتر می تواند در هر زمان و در هر مکانی از وضعیت سلامت بیمارش آگاه باشد. از طرفی، فرد بیمار فقط دستگاه پوشیدنی را میپوشد و هیچگونه نیازی به داشتن مهارت ها و تخصصهای خاص ندارد. علاوه بر موارد ذکر شده، باید خاطرنشان کرد که شبکه های پوشیدنی ارزان هستند و قابل استفاده توسط تمامی سطوح طبقاتی جامعه هستند.
مسائل تحلیل ورزشکاران یکی دیگر از کاربردهای شبکه های پوشیدنی است [۳۸][۳۹][۴۰]. رشته های مختلف ورزشی همواره خواهان استفاده از آخرین تکنولوژیهای روز بوده اند. با توجه به شرایط پر استرس مسابقات، تحلیل ورزشکاران در شرایط مسابقه یک مسئله چالشدار میباشد. لذا با کمک شبکه های پوشیدنی میتوان با هزینهای ارزان و به صورت دقیقی عملکرد ورزشکاران را تحلیل کرد. به طور مثال این شبکه ها میتوانند مشخص کنند که یک فوتبالیست چند کیلومتر دویده است؟ به طور تقریبی چقدر انرژی مصرف کرده است؟ چند پاس داده است؟ و یا چند شوت کرده است؟
با وجود کاربردهای روبه افزایش محاسبات پوشیدنی، تهدیدها و چالشهایی این فناوری را به مخاطره می اندازد [۴۱][۴۲]. برای مثال تحملپذیری در برابر خطا از این موارد میباشد. برای حصول تحملپذیری خطا تکنیکهای مختلفی استفاده می شود و مفاهیم زیادی مورد بهره برداری قرار میگیرد، برای مثال بررسی کیفیت داده های سنسورها می تواند مفید باشد. کاربردهای گوناگون از کامپیوترهای پوشیدنی در صورتی میتوانند اُمیدبخش و مفید باشند که بتوانند جریان کیفیت دادهی بالایی را در بازههای زمانی طولانی مدت مهیا کنند. کیفیت داده ها دارای معیارهای شناخته شده مرتبط بودن، به موقع بودن، دقت، در دسترس بودن، مقایسهپذیری و انسجام، میباشند [۴۳]. در شبکه های پوشیدنی پایداری، دقت، قابلیت مقاومت در مقابل خطرات از جمله فاکتورهای پر اهمیتِ کیفیت داده ها میباشند. فاکتورهای کیفیت داده باید در گردآوری، ذخیرهسازی و پردازش داده ها مورد توجه قرار گیرند.
تحمل خطا در سیستمهای محاسباتی بویژه در محاسبات پوشیدنی ضروری است. در سیستمهایی که در برابر خطا تحملپذیرند با وجود خطا سیستم باید قادر به انجام درست وظایف و ارائه سرویس باشد [۴۴][۴۵][۴۶]. در اینگونه سیستمها باید سرویسهای ارائه شده دارای کیفیت و شفافیت باشند. شبکه های پوشیدنی در کاربردهای وسیعی میتوانند مورد استفاده قرار گیرند که بسیاری از این کاربردها حیاتی هستند لذا بکارگیری مکانیزم های تحمل خطا در این شبکه ها حائز اهمیت است. از آنجایی که در بسیاری از کاربردهای حیاتی ریسک معنا ندارد، خرابی این سیستمها می تواند خسارات جبرانناپذیری را رقم بزند. بنابراین همواره باید سعی شود که با بهره گرفتن از روشهای تحمل خطا از شکست سیستم جلوگیری شود.
۲-۲-۲ تحملپذیری خطا در محاسبات پوشیدنی
با پیشرفت تکنولوژی، سیستمهای کامپیوتری پیچیدهتر شده اند. این درحالیست که طراحی سیستم پوشیدنی باید بگونهای باشد که با بروز نقص در قسمت های مختلف، سیستم دچار نقص عمده نشود. همچنین سیستم مذکور باید عملکرد صحیح خود را حفظ کند و در عین حال که کارایی کلی سیستم پایین می آید، برآورده شدن هدف نهایی سیستم ضروری است. با توجه به موارد بیان شده، تعریف سیستم پوشیدنی تحملپذیر خطا بدین شرح میباشد: یک سیستم پوشیدنی تحملپذیر خطا، سیستمی است که می تواند وظایفش را با وجود خطاها و خرابیهای نرمافزاری و سختافزاری، به درستی انجام دهد.
به دلیل افزایش استفاده از کامپیوترها در کاربردهای مختلف از زندگی بشر، تحملپذیری خطا برای سیستمهای مختلف، همواره مورد توجه محققان و طراحان بوده است. اما متأسفانه تحملپذیری خطا در محاسبات پوشیدنی، کمتر مورد بحث و بررسی قرار گرفته است. این در حالیست که به علت اهمیت مسأله، تحملپذیری خطا یک ویژگی بسیار مهم در تمام سیستمهای کامپیوتری میباشد.
با وجود تحقیقات فراوانی که درباره سیستمهای پوشیدنی انجام گرفته است، این تکنولوژی هنوز در عمل و در برخی از کاربردها مورد استفاده قرار نمیگیرد. میتوان دلیل اصلی این امر را آسیبپذیر بودن آنها نسبت به خطاها و خرابیها دانست. با توجه به دلیل فوق میتوان نتیجه گرفت که ایجاد تحملپذیری خطا در محاسبات پوشیدنی یک نیاز است. با در نظر گرفتن تحملپذیری خطا، با وجود خرابی در سیستم میتوان کارایی سیستم پوشیدنی را در حد قابل توجهای باقی نگه داشت. در این صورت با بروز خطا و خرابی برای تعدادی از مؤلفه ها، سیستم از ادامه انجام کار باز نمیماند و حداقل بحرانیترین وظایفی که برایش در نظر گرفته شده است را به صورت صحیح انجام میدهد.
در ادامه با ذکر سه سناریو بیان می شود که چرا تحملپذیری خطا در محاسبات پوشیدنی مهم است؟
سناریوی۱: سارا پیرزنی است که در شهر بروجرد به تنهایی زندگی می کند. وی به دلیل رنج بردن از نارسایی قلبی و فشار خون بالا به پزشک مراجعه کرد. با توجه به شرایط جسمانیاش پزشک تشخیص داد که او باید تا آخر عمر تحت نظر قرار بگیرد. به دلیل اینکه نگهداری سارا در بیمارستان برای چندین سال امکان پذیر نبود، پزشک معالج پیراهن هوشمندی را به او داد که این پیراهن قادر به کنترل علائم حیاتی بیمار بود. حسگرهای تعبیه شده در پیراهن، اطلاعات را از بدن بیمار میگرفتند و از طریق تلفن همراه بیمار، به پزشک معالج ارسال میکردند. پزشک نیز در مواقعی که بیمار وضعیت جسمانی خوبی نداشت، براساس این اطلاعات تصمیم گیریهای لازم را اتخاذ میکرد.
در ماه های ابتدایی این پیراهن بخوبی علائم حیاتی بیمار را کنترل میکرد. اما یک روز با وجود اینکه سارا شرایط جسمانی مطلوبی داشت، کنترل کننده ضربان قلبش[۱۸] علائم نامنظمی را به کامپیوتر پزشک ارسال میکرد. پزشک معالج که در آن روز در بروجرد نبود با مشاهده این علائم ، داروهایی را برای او در نظر گرفت و سریعاً با بیمارستان تماس گرفت. بلافاصله بیمارستان چند پرستار را به منظور تزریق آمپولها و مصرف داروها به خانهی او فرستاد. تیم پرستاری به محض معاینه بیمار متوجه سلامت و سالم بودنش شد. علت این تشخیص اشتباه، خرابی دستگاه بود که این مسئله باعث تحمیل هزینه به بیمارستان و بیمار گردید.
سناریوی۲: سیزده شیر نادر در آفریقا وجود دارد که هر کدام از آنها با بیماریها و خطرات طبیعی گوناگونی روبرو هستند. لذا پژوهشگران به منظور جلوگیری از انقراضِ نسل این شیرهای نادر، تصمیم به انجام اقداماتی گرفتند. با توجه به اینکه نگهداری آنها در قفس و در بلند مدت مقدور نبود، پژوهشگران تصمیم گرفتند که از شیرها در زیستگاههای طبیعی و بدون محدودیت نگهداری کنند. لذا آنها گوشوارههایی به گوش شیرها نصب کردند. گوشوارههای مذبور هوشمند بودند، به طوری که قادر بودند اطلاعاتی را در مورد وضعیت سلامت شیرها، برای پژوهشگران ارسال کنند. با آمدن فصل گرمِ تابستان، هنگامی که شیرها در زیر آفتاب سوزان قرار میگرفتند، گوشوارهها به درستی کار نمیکردند. به بیانی دیگر عملکرد حسگرهای این پوشیدنیهای هوشمند تحت تأثیر دما قرار میگرفت.
سناریوی۳: سوزان زن جوانی است که به بیماری ناشناختهای مبتلا بود از اینرو هرازگاهی به صورت ناگهانی غش میکرد و به زمین میافتاد. به تشخیص پزشک معالج، در زمان غش نباید جسم بیمار تکان میخورد. همچنین به منظور بازگشت فوری سلامت سوزان به حالت طبیعی، آمپولهایی تجویز شد تا بلافاصله بعد از هر بار غش به وی تزریق شوند. اما مشکل این بود که در هنگام غش مردم عادی از بیماری سوزان خبر نداشتند و با تکان دادن جسم او بلافاصله وی را به بیمارستان انتقال میدادند، از طرفی پزشکان هم از تزریق آمپولها بیخبر بودند. از اینرو پزشک معالج سعی کرد که مشکل را با یک گیرِ سر هوشمند حل کند.
عملکرد گیر سر هوشمند بدین صورت بود که در زمانی که سوزان غش میکرد، از طریق بلندگوی تعبیه شده در آن پیامِ «جسم بیمار را حرکت ندهید و برای کمک بلوتوث گوشیهایتان را روشن کنید» مدام پخش میشد، سپس گیر مذکور توسط بلوتوث پیامی را برای همه افرادی که بلوتوثشان روشن بود میفرستاد. متن پیام به افراد هشدار میداد که جسم بیمار را تکان ندهند و اورژانس را خبر کنند. همچنین در آن پیام، سابقه بیماری سوزان و نام آمپولها و دستورالعمل استفاده از آنها ذکر شده بود. اوضاع به خوبی پیش میرفت تا اینکه یک روز در اتوبوس سوزان دوباره غش کرد. گیرِ سر هوشمند دو بار پیام صوتی را پخش کرد. اما مسافران اتوبوس علیرغم اینکه بلوتوثهای گوشیهایشان را روشن کرده بودند، به دلیل خالی شدن باتری گیرِ سر هوشمند، هیچ پیامی را دریافت نکردند.
۲-۳ اتکاپذیری
سیستمهای محاسباتی با پنج ویژگی عملکرد[۱۹]، کارایی[۲۰]، اتکاپذیری[۲۱]، امنیت[۲۲] و هزینه شرح داده میشوند. اتکاپذیری یعنی مقدار توانایی یک سیستم در فراهم کردن سرویسهایی که قابلیت اطمینان قابل قبول دارند. مطابق شکل ۲-۲، مفاهیم مربوط به اتکاپذیری به سه دسته یعنی ویژگیها، تهدیدها و ابزارها تقسیم میشوند که در ادامه به شرح این مفاهیم پرداخته می شود.
شکل ۲-۲: درخت اتکاپذیری
۲-۳-۱ ویژگیهای اتکاپذیری یک سیستم
دسترسپذیری، قابلیت اطمینان، ایمنی، تمامیت و نگهداشتپذیری ویژگیهایی هستند که اتکاپذیری یک سیستم را مشخص می کنند. در ادامه به شرح این ویژگیها پرداخته می شود.
قابلیت اطمینان را با R(t) نشان می دهند، در واقع R(t) تابعی از زمان میباشد که یک احتمال شرطی را بیان می کند. احتمال شرطی بدین صورت است که، یک سیستم در طول مدت زمانِ (t0,t1) صحیح عمل کند، به شرط اینکه سیستم مذبور در زمان t0، به صورت صحیح شروع به کار کرده باشد.
باید خاطرنشان کرد که تفاوت بین تحملپذیری خطا و قابلیت اطمینان، بسیار مهم است. تحملپذیری خطا یک تکنیک است که قادر به افزایش قابلیت اطمینان میباشد. اما یک سیستم تحملپذیر خطا، لزوماً قابلیت اطمینان بالایی ندارد.
به طور مثال میتوان سیستمی طراحی نمود که قابلیت تحمل خطای بالایی داشته باشد، اما احتمال رخ دادن خطا و خرابی در این سیستم آنقدر بالا باشد که قابلیت اطمینان را بصورت زیادی کاهش دهد. یا برعکس، میتوان با بهره گرفتن از مؤلفه های بسیار خوب سیستمی طراحی نمود که هر مؤلفه با احتمال بسیار پایینی دچار خطا و خرابی شود، اما در صورت رخ دادن این اتفاق کار سیستم قطعاً متوقف می شود. در واقع این سیستم قابلیت اطمینان زیاد و قابلیت تحملخطای کمی را دارد.
دسترسپذیری را با A(t) نشان می دهند، در واقع A(t) تابعی از زمان میباشد که به صورت یک احتمال شرطی تعریف می شود. احتمال شرطی اینکه در لحظه t، سیستم صحیح عمل نماید و در دسترس باشد.
دسترسپذیری و قابلیت اطمینان از هم متفاوتند، بدین صورت که قابلیت اطمینان در یک بازه زمانی تعریف می شود اما دسترسپذیری در یک لحظه از زمان معنا دارد. با توجه به تعریف دسترسپذیری، اگر خطا در یک سیستم بصورت دورهای ظاهر شود، این امکان وجود دارد که آن سیستم از دسترسپذیری خوبی برخوردار باشد زیرا که طول مدت زمانی که خطا در سیستم ظاهر می شود می تواند کوتاه باشد.
ایمنی بیانگر این است که یک سیستم ایمن باید دارای سه ویژگی باشد. الف) در دسترس باشد و درست کار کند. ب)دارای سازگاری داده باشد. و ج)مانع از دسترسی افراد غیر مجاز به سیستم شود.
تمامیت و سازگاری داده به این مورد اشاره می کنند که در سیستم تغییرات نامناسب سیستمی رخ ندهد. به عنوان مثال داده های ذخیره شده در سیستم با یکدیگر ضدیت نداشته باشند.
قابلیت نگهداری، در اکثر سیستمها یکی از مهمترین اهداف میباشد. قابلیت نگهداری یعنی تحمل اصلاحات و تعمیرات، به عبارتی یعنی هنگامی که یک سیستم دچار مشکلی شد به راحتی قابل تعمیر باشد. قابلیت نگهداری را که با M(t) نشان می دهند که تابعی از زمان است که بیانگر احتمال آن است که یک سیستم خراب بتواند در زمان t به حالت عملیاتی بازگردد.
۲-۳-۲ تهدیدها
انواع تهدیدهایی که در رابطه با مفهوم اتکاپذیری وجود دارد را میتوان به سه دستهی نقصها، خطاها و خرابیها تقسیم کرد. در تحقیقات مختلف معمولاً مفاهیم نقص[۲۳]، خطا[۲۴] و شکست[۲۵] به عنوان واژگانی مترادف در نظر گرفته میشوند.در مبحث تحملپذیری خطا، سه واژه نقص، خطا و شکست از لحاظ تکنیکی ازهم متفاوتند، و بین آنها یک رابطه علت و معلول وجود دارد. یعنی مطابق شکل ۲-۳، خطا در سیستم به علت بروز نقص رخ میدهد. اگر به علت خطا سیستم نتواند عملکرد خود را بصورت صحیح انجام دهد، آنگاه خطا منجر به شکست سیستم می شود [۴۷].
شکل ۲-۳: رابطه علت و معلول نقص، خطا و شکست [۴۷]
اگر به برخی عوامل در فازهای طراحی و پیادهسازی توجه نشود، ممکن است خطا رخ دهد. بطور معمول فرایند طراحی با بیان شرح مسأله آغاز می شود. سپس طراح با بهره گرفتن از درکیاتش جزئیات بیشتری را به شرح مسأله اضافه می کند و یک راهحل ارائه میدهد و توسعه دادن الگوریتمها و طراحی معماری را شروع می کند. در پایان، زمانی که سختافزار یا نرمافزار درست شد، طراحی از یک مرحله آزمایشی عبور داده می شود تا عملکرد سیستم بگونهای باشد که شرح اولیه مسأله، تأمین شود. اما به صورت کلی دلایل خطاها می تواند به چهار دسته تقسیم شوند.
-
- توصیف اشتباه: مسأله توصیف اشتباه می تواند شامل طراحی الگوریتم اشتباه و معماریهای سختافزاری و نرمافزاری اشتباه، باشد.
-
- پیادهسازی اشتباه: از آنجا که پیادهسازی، فرایند تبدیل توصیف نرمافزار یا سختافزار به نرمافزار یا سختافزار واقعی است، یک پیادهسازی اشتباه می تواند باعث ایجاد شدن خطاهایی شود.
-
- خرابی عناصر: اجزاء فیزیکی عناصر بنا به دلایلی از قبیل ضعفهای ساخت یا خرابی تصادفی، ممکن است خراب شوند که خرابی هر یک از این اجزاء می تواند باعث بروز خطا شود.
-
- عوامل خارجی: عوامل محیطی و اشتباهات اپراتوری آخرین علت بروز خطا هستند. به عنوان مثال اگر یک مدار الکترونیکی در سرمای بیش از اندازه قرار بگیرد، ممکن است که باعث بروز خطا شود.
خطا دارای ویژگیهایی است؛ به طور مثالطبیعت خطا، طول مدت خطا[۲۶] و محدوده[۲۷] خطا سه ویژگی مهم خطاها میباشند. نوع خطا توسط طبیعت خطا مشخص می شود.به عنوان مثال یک خطا می تواند آنالوگ، دیجیتال، سختافزاری و یا نرمافزاری باشد.
مدت زمانی که خطا در سیستم فعال است توسط طول مدت خطا مشخص می شود. بر این اساس سه نوع خطای ماندگار[۲۸]، گذرا[۲۹] و متناوب[۳۰] وجود دارد. خطاهای پایدار به دلیل وجود خطا در مرحله ساخت سیستم یا در فاز عملیاتی، رخ می دهند. خطاهای پایدار و اثراتشان همیشه در سیستم باقی میمانند. رفع این خطاها نیازمند تعمیر یا تعویض سختافزار معیوب میباشد. اما خطاهای گذرا در محیط عملیاتی و در زمانی که سیستم مشغول کار است رخ می دهند. اینگونه خطاها قابل پیش بینی و جداسازی هستند و دارای منشأ محیطی (مانند رعد و برق، طوفان، افزایش دمای محیط) میباشند. زمانی که سیستم در وضعیت عملیاتی قرار دارد با بهره گرفتن از یکسری از روشها میتوان خطاهای گذرا را کشف کرد. دستهی دیگر خطاهای متناوب میباشند که در بازههای زمانی مختلف آشکار و ناپدید میشوند. به بیانی خطاهای متناوب گونه ای خاص از خطاهای ناپایدار میباشند. طبق آمار گزارش شده در [۴۸]، بیش از ۸۰ درصد خطاها از نوع متناوب میباشند.
نوع خطا در سناریوهای ذکر شده بدین صورت است که در سناریوی اول، به دلیل خرابی سنسور، خطا از نوع پایدار است. خطای مشاهده شده در سناریوی شیرهای نادر، از نوع گذراست، زیرا با افزایش دما و به صورت موقت بروز می کند. در سناریوی گیر سر هوشمند، به دلیل مصرف انرژی زیاد، باتری تخلیه شده و باعث بروز خطای پایدار گردیده است.
در بحث محدوده خطا، بر روی این موضوع بحث می شود که آیا خطا به یک واحد سختافزاری/نرمافزاری محدود می شود یا اینکه کل سیستم را فرا میگیرد. به طور مثال خرابی منبع تغذیه سیستم می تواند بر کل سیستم تأثیرگذار باشد.
بطور کلی طبقه بندیهای مختلفی از خطاها وجود دارد. به طور مثال خطاهای پایدار، ناپایدار، متناوب، بیخطر[۳۱] و بداندیش[۳۲] را میتوان به عنوان خطاهای سختافزاری در یک دستهبندی قرار داد [۴۹]. جدول ۲-۱، یک طبقه بندی رایج از خطاها را نشان میدهد.
انواع خطا |