شبکه حسگر/کارانداز (حس/کار)[۱] شبکه ای است متشکل از تعداد زیادی گره کوچک. در هر گره تعدادی حسگر و/یا کارانداز وجود دارد. شبکه حس/کار بشدت با محیط فیزیکی تعامل دارد. از طریق حسگرها اطلاعات محیط را گرفته و از طریق کار انداز ها واکنش نشان می دهد. ارتباط بین گره ها بصورت بی سیم است. هرگره بطور مستقل و بدون دخالت انسان کار میکند و نوعا از لحاظ فیزیکی بسیار کوچک است ودارای محدودیت هایی در قدرت پردازش, ظرفیت حافظه, منبع تغذیه, … میباشد. این محدودیت ها مشکلاتی را بوجود می آورد که منشأ بسیاری از مباحث پژوهشی مطرح در این زمینه است. این شبکه از پشته پروتکلی شبکه های سنتی پیروی می کند ولی بخاطر محدودیت ها و تفاوتهای وابسته به کاربرد, پروتکل ها باید باز نویسی شوند. این مقاله ضمن معرفی شبکه حس/کار و شرح ویژگیها, محدودیت ها, کاربردها, ایده ها و چالش ها, به طرح موضوعات پژوهشی در این زمینه می پردازد.

پیشرفتهای اخیر در فناوری ساخت مدارات مجتمع در اندازه های کوچک از یک سو و توسعه فناوری ارتباطات بی سیم از سوی دیگر زمینه ساز طراحی شبکه های حس/کار بی سیم شده است.تفاوت اساسی این شبکه ها ارتباط آن با محیط و پدیده های فیزیکی است شبکه های سنتی ارتباط بین انسانها و پایگاه های اطلاعاتی را فراهم میکند در حالی که شبکه ی حس/کار مستقیما با جهان فیزیکی در ارتباط است با استفاده از حسگرها محیط فیزیکی را مشاهده کرده, بر اساس مشاهدات خود تصمیم گیری نموده و عملیات مناسب را انجام می دهند. نام شبکه حس/کار بی سیم یک نام عمومی است برای انواع مختلف که به منظورهای خاص طراحی می شود. برخلاف شبکه های سنتی که همه منظوره اند شبکه های حس/کار نوعا تک منظوره هستند. در صورتی که گره ها توانایی حرکت داشته باشند شبکه می تواند گروهی از رباتهای کوچک در نظر گرفته شود که با هم بصورت تیمی کار می کنند و جهت مقصد خاصی مثلا بازی فوتبال یا مبارزه با دشمن طراحی شده است. از دیدگاه دیگر اگر در شبکه تلفن همراه ایستگاههای پایه را حذف نماییم و هر گوشی را یک گره فرض گنیم ارتباط بین گره ها باید بطور مستقیم یا از طریق یک یا چند گره میانی برقرار شود. این خود نوعی شبکه حس/کار بی سیم می باشد. اگرچه به نقلی تاریخچه شبکه های حس/کار به دوران جنگ سرد و ایده اولیه آن به طراحان نظامی صنایع دفاع آمریکا برمیگردد. ولی این ایده می توانسته در ذهن طراحان رباتهای متحرک مستقل یا حتی طراحان شبکه های بی سیم موبایل نیز شکل گرفته باشد. به هر حال از آنجا که این فن نقطه تلاقی دیدگاه های مختلف است تحقق آن می تواند بستر پیاده سازی بسیاری از کاربردهای آینده باشد. کاربرد فراوان این نوع شبکه و ارتباط آن با مباحث مختلف مطرح در کامپیوتر و الکترونیک از جمله امنیت شبکه, ارتباط بلادرنگ‌, پردازش صوت و تصویر, داده کاوی, رباتیک ,طراحی خودکار سیستم های جاسازی شده[۲]دیجیتال و… میدان وسیعی برای پروهش محققان با علاقمندی های مختلف فراهم نموده است.

ساختار کلی شبکه حس/کار بی سیم

 

قبل از ارائه ساختار کلی ابتدا تعدادی از تعاریف کلیدی را ذکر می کنیم.

حسگر : وسیله ای که وجود شیئ رخداد یک وضعیت یا مقدار یک کمیت فیزیکی را تشخیص داده و به سیگنال الکتریکی تبدیل می کند. حسگر انواع مختلف دارد مانند حسگرهای دما, فشار, رطوبت, نور, شتاب سنج, مغناطیس سنج و…

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

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

گره کارانداز: به گره ای گفته می شود که فقط شامل یک یا چند کارانداز باشد.

گره حسگر/کارانداز: به گره ای گفته می شود که مجهز به حسگر و کار انداز باشد.

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

میدان حسگر/کارانداز : ناحیه کاری که گره های شبکه حس/کار در آن توزیع میشوند.

چاهک[۳]: گرهی که جمع آوری داده ها را به عهده دارد. و ارتباط بین گره های حس/کار و گره مدیر وظیفه[۴] را برقرار می کند.

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

شبکه حس/کار: شبکه ای متشکل از گره های حسگر و کار انداز یا حسگر/کارانداز است که حالت کلی شبکه های مورد بحث می باشد. به عبارت دیگر شبکه حس/کارشبکه ای است با تعداد زیادی گره که هر گره می تواند در حالت کلی دارای تعدادی حسگر و تعدادی کارانداز باشد. در حالت خاص یک گره ممکن است فقط حسگر یا فقط کارانداز باشد. گره ها در ناحیه ای که میدان حس/کار نامیده می شود با چگالی زیاد پراکنده می شوند. یک چاهک پایش[۵] کل شبکه را بر عهده دارد. اطلاعات بوسیله چاهک جمع آوری می شود و فرامین از طریق چاهک منتشر می شود. شکل(۲) را ببینید. مدیریت وظایف میتواند متمرکز یا توزیع شده باشد. بسته به اینکه تصمیم گیری برای انجام واکنش در چه سطحی انجام شود دو ساختار مختلف خودکار و نیمه خودکار وجود دارد. که ترکیب آن نیز قابل استفاده است.

شکل(۲) ساختار کلی شبکه حس/کار

 

 

ساختار خودکار : حسگر هایی که یک رخداد یا پدیده را تشخیص می دهند داده های دریافتی را به گره های کارانداز جهت پردازش و انجام واکنش مناسب ارسال می کنند. گره های کارانداز مجاور با هماهنگی با یکدیگر تصمیم گیری کرده و عمل می نمایند. در واقع هیچ کنترل متمرکزی وجود ندارد و تصمیم گیری ها بصورت محلی انجام میشود.شکل(۳) را ببینید.

ساختار نیمه خودکار: در این ساختار داده ها توسط گره ها به سمت چاهک هدایت شده و فرمان از طریق چاهک به گره های کار انداز صادر شود. شکل(۳) را مشاهده کنید

 

 

 

شکل(۳) ساختار خودکار

 

شکل(۴) ساختار نیمه خودکار

 

از طرف دیگر در کاربردهای خاصی ممکن است از ساختار بخش بندی شده یا سلولی استفاده شود که در هر بخش یک سردسته[۶] وجود دارد که داده های گره های دسته خود را به چاهک ارسال می کند. در واقع هر سردسته مانند یک مدخل[۷] عمل میکند.

۳- ساختمان گره

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

 

شکل(۵) ساختمان داخلی گره حسگر/کارانداز

 

۴- ویژگی ها

وجود برخی ویژگی ها در شبکه حسگر/ کارانداز, آن را از سایر شبکه های سنتی و بی سیم متمایز می کند. از آن جمله عبارتند از:

  • تنگناهای سخت افزاری شامل محدودیتهای اندازه فیزیکی, منبع انرژی, قدرت پردازش, ظرفیت حافظه
  • تعداد بسیار زیاد گره ها
  • چگالی بالا در توزیع گره ها در ناحیه عملیاتی
  • وجود استعداد خرابی در گره ها
  • تغییرات توپولوژی بصورت پویا و احیانا متناوب
  • استفاده از روش پخش همگانی[۸] در ارتباط بین گره ها در مقابل ارتباط نقطه به نقطه
  • داده محور[۹] بودن شبکه به این معنی که گره ها کد شناسایی[۱۰] ندارند

 

 

کاربردها:

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

پشته پروتکلی:

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

لایه عمودی مدیریت توان با دخالت در کلیه لایه های افقی چگونگی مصرف توان برای گره را تعیین می کند. در واقع برای کاهش مصرف انرژی به الگوریتم ها و پروتکل های توان آگاه[۱۲] نیازمندیم. مثلا اینکه یک گره پس از دریافت یک پیغام از یکی از همسایه هایش دریافت کننده اش را خاموش کند باعث جلوگیری از دریافت دوباره پیغام و در نتیجه کاهش مصرف انرژی می گردد. ایده دیگری که می تواند همزمان استفاده شود این است گره ای که به سطح پایین انرژی رسیده به همسایه هایش اعلام همگانی می کند که انرژی اش در حال اتمام است و نمی تواند در مسیردهی پیغامها شرکت داشته باشد. گره های همسایه پس از آن پیغام ها را از طریق گره های دیگر مسیردهی خواهند کرد. لایه عمودی مدیریت حرکت, به بکار گیری روشهای مکان آگاه[۱۳] بر می گردد جابجایی گره را تشخیص داده و ثبت می کند بنابراین یک مسیر برگشت تا کاربر همیشه مدیریت می شود و رد گره متحرک دنبال می شود. مدیریت وظیفه وظایف گره ها را زمانبندی کرده و متعادل می سازد. مثلا اگر وظیفه حس به یک ناحیه معین محول شد همه گره های حسگر آن ناحیه لازم نیست عملیات حس را بطور همزمان انجام دهند بلکه این وظیفه می تواند بسته به کاربرد به برخی گره ها مثلا به گره هایی قابلیت اطمینان بیشتر یا ترافیک کمتر یا انرژی بیشتر دارند محول شود. برای تضمین این نکته باید از الگوریتم های کارآگاه[۱۴] استفاده نمود. با وجود موارد فوق گره ها در شبکه حس/کار می توانند با روشهای توان کارا[۱۵] باهم کار کرده و داده ها را در یک شبکه متحرک حس/کار مسیر دهی کنند و منابع را بین گره ها به اشتراک گذارند.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

موضوعات مطرح

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

 

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

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

 

۳- قابلیت اطمینان: هر گره ممکن است خراب شود یا در اثر رویدادهای محیطی مثل تصادف یا انفجار بکلی نابود شود یا در اثر تمام شده منبع انرژی از کار بیفتد. منظور از تحمل پذیری یا قابلیت اطمینان این است که خرابی گره ها نباید عملکرد کلی شبکه را تحت تاثیر قرار دهد. در واقع می خواهیم با استفاده از اجزای غیر قابل اطمینان یک شبکه قابل اطمینان بسازیم. برای گره k با نرخ خرابی lk قابلیت اطمینان با فرمول(۱) مدل می شود. که در واقع احتمال عدم خرابی است در زمان t بشرط اینکه گره در بازه زمانی (۰,t) خرابی نداشته باشد. به این ترتیب هرچه زمان می گذرد احتمال خرابی گره بیشتر می شود.

 

 

(۱)

۴- مقیاس پذیری : شبکه باید هم از نظر تعداد گره و هم از نظر میزان پراکندگی گره ها, مقیاس پذیر باشد. بعبارت دیگر شبکه حس/کار از طرفی باید بتواند با تعداد صدها, هزارها و حتی میلیون ها گره کار کند و از طرف دیگر, چگالی توزیع متفاوت گره ها را نیز پشتیبانی کند. چگالی طبق فرمول (۲) محاسبه می شود. که بیانگر تعداد متوسط گره هایی است که در برد یک گره نوعی (مثلادایره ای با قطر۱۰ متر) قرار می گیرد. A: مساحت ناحیه کاری N:تعداد گره در ناحیه کاری و R: برد ارسال رادیویی است. در بسیاری کاربردها توزیع گره ها اتفاقی صورت می گیرد و امکان توزیع با چگالی مشخص و یکنواخت وجود ندارد یا گره ها در اثر عوامل محیطی جابجا می شوند. بنابراین چگالی باید بتواند از چند عدد تا چند صد گره تغییر کند. موضوع مقیاس پذیری به روشها نیز مربوط می شود برخی روشها ممکن است مقیاس پذیر نباشد یعنی در یک چگالی یا تعداد محدود از گره کار کند. در مقابل برخی روشها مقیاس پذیر هستند                                                                                                                 ۲                                                                              (۲)

۵- قیمت تمام شده : چون تعداد گره ها زیاد است کاهش قیمت هر تک گره اهمیت زیادی دارد. تعداد گره ها گاهی تا میلیونها میرسد. در این صورت کاهش قیمت گره حتی به مقدار کم تاثیر قابل توجهی در قیمت کل شبکه خواهد داشت.

 

۶- شرایط محیطی : طیف وسیعی از کاربرد ها ی شبکه های حس/کار مربوط به محیط هایی می شود که انسان نمی تواند در آن حضور داشته باشد. مانند محیط های آلوده از نظر شیمیای, میکروبی, هسته ای ویا مطالعات در کف اقیانوس ها و فضا ویا محیط های نظامی بعلت حضور دشمن ویا در جنگل و زیستگاه جانوران که حضور انسان باعث فرار آنها می شود. در هر مورد , شرایط محیطی باید در طراحی گره ها در نظر گرفته شود مثلا در دریا و محیط های مرطوب گره حسگر در محفظه ای که رطوبت را منتقل نکند قرار می گیرد.

 

۷- رسانه ارتباطی: در شبکه های حس/کار ارتباط گره ها بصورت بی سیم و از طریق رسانه رادیویی, مادون قرمز, یا رسانه های نوری دیگر صورت می گیرد. اکثرا از ارتباط رادیویی استفاده می شود. البته ارتباط مادون قرمز ارزانتر و ساختنش آسانتر است ولی فقط در خط مستقیم عمل می کند.

 

۸- توان مصرفی گره ها: گره های شبکه حس/کار باید توان مصرفی کم داشته باشند. گاهی منبع تغذیه یک باتری ۲/۱ ولت با انرژی ۵/. آمپر ساعت است که باید توان لازم برای مدت طولانی مثلا ۹ ماه را تامین کند. در بسیاری از کاربردها باتری قابل تعویض نیست. لذا عمر باطری عملا عمر گره را مشخص می کند. بعلت اینکه یک گره علاوه بر گرفتن اطلاعات(توسط حسگر) یا اجرای یک فرمان(توسط کارانداز) بعنوان رهیاب[۱۶] نیز عمل می کند بد عمل کردن گره باعث حذف آن از توپولوژی شده و سازماندهی مجدد شبکه و مسیردهی مجدد بسته عبوری را در پی خواهد داشت. در طراحی سخت افزار گره ها استفاده از طرح ها و قطعاتی که مصرف پایینی دارند و فراهم کردن امکان حالت خواب[۱۷] برای کل گره یا برای هر بخش بطور مجزا مهم است.

 

۹- افزایش طول عمر شبکه: یک مشکل این است که عمر شبکه های حس/کار نوعاً کوتاه است. چون طول عمر گره ها بعلت محدودیت انرژی منبع تغذیه کوتاه است. علاوه بر آن گاهی موقعیت ویژه یک گره در شبکه مشکل را تشدید می کند مثلاً در گره ای که در فاصل یک قدمی چاهک قرار دارد از یکطرف بخاطر بار کاری زیاد خیلی زود انرژی خود را از دست می دهد و از طرفی از کار افتادن آن باعث قطع ارتباط چاهک با کل شبکه می شود و از کار افتادن شبکه می شود. برخی راه حل ها به ساختار برمی گردد مثلا در مورد مشکل فوق استفاده از ساختار خودکار راهکار مؤثری است.(به بخش ۲ مراجعه شود) بعلت اینکه در ساختار خودکار بیشتر تصمیم گیری ها بطوری محلی انجام می شود ترافیک انتقال از طریق گره بحرانی کم شده, طول عمر آن و در نتیجه طول عمر شبکه افزایش می یابد. مشکل تخلیه زود هنگام انرژی در مورد گره های نواحی کم تراکم در توزیع غیر یکنواخت گره ها نیز صدق می کند (به ۴ مراجعه کنید) در اینگونه موارد داشتن یک مدیریت توان در داخل گره ها و ارائه راه حل های توان آگاه بطوری که از گره های بحرانی کمترین استفاده را بکند مناسب خواهد بود. این نوعی به اشتراک گذاری منابع محسوب می شود لذا در صورت داشتن مدیریت وظیفه و مدیریت توان مناسب توزیع با چگالی زیاد گره ها در میدان حسگر/ کارانداز طول عمر شبکه را افزایش میدهد. ارائه الگو های ساختاری مناسب و ارائه روشهای مدیریتی و آلگوریتم ها توان آگاه با هدف افزایش طول عمر شبکه حس/کار از مباحث مهم تحقیقاتی است.

 

۱۰- ارتباط بلادرنگ[۱۸] و هماهنگی[۱۹] : در برخی کاربردها مانند سیستم تشخیص و جلوگیری از گسترش آتش سوزی یا سیستم پیش گیری از سرقت سرعت پاسخگویی شبکه اهمیت زیادی دارد. در نمایش بلادرنگ فشار بر روی مانیتور بسته های ارسالی باید بطور لحظه ای روزآمد باشند. برای تحقق بلادرنگ یک روش این است که برای بسته های ارسالی یک ضرب العجل تعیین شود و در لایه کنترل دسترسی رسانه[۲۰] بسته های با ضرب العجل کوتاهتر زودتر ارسال شوند مدت ضرب العجل به کاربرد بستگی دارد. مسئله مهم دیگر تحویل گزارش رخدادها به چاهک, یا کارانداز ناحیه, به ترتیب وقوع آنهاست در غیر این صورت ممکن است شبکه واکنش درستی انجام ندهد. نکته دیگر هماهنگی کلی شبکه در ارتباط با گزارشهایی است که در مورد یک رخداد از حسگرهای مختلف به کاراندازهای ناحیه مربوطه داده می شود. بعنوان مثال در یک کاربرد نظامی فرض کنید حسگرهایی جهت تشخیص حضور یگان های پیاده دشمن و کاراندازهایی جهت نابودی آن در نظر گرفته شده چند حسگر حضور دشمن را به کار اندازها اطلاع می دهند شبکه باید در کل منطقه, عملیات را به یکباره شروع کند. در غیر این صورت با واکنش اولین کارانداز, سربازان دشمن متفرق شده و عملیات با شکست مواجه می شود. بهرحال موضوع بلادرنگ و هماهنگی در شبکه های حس/کاربخصوص در مقیاس بزرگ و شرایط نامطمئن از مباحث تحقیقاتی است.

 

۱۱- امنیت[۲۱] و مداخلات[۲۲] : موضوع امنیت در برخی کاربردها بخصوص در کاربرد های نظامی یک موضوع بحرانی است و بخاطر برخی ویژگی ها شبکه های حس/کار در مقابل مداخلات آسیب پذیر ترند. یک مورد بی سیم بودن ارتباط شبکه است که کار دشمن را برای فعالیت های ضد امنیتی و مداخلات آسانتر می کند. مورد دیگر استفاده از یک فرکانس واحد ارتباطی برای کل شبکه است که شبکه را در مقابل استراق سمع آسیب پذیر می کند. مورد بعدی ویژگی پویایی توپولوژی است که زمینه را برای پذیرش گره های دشمن فراهم می کند. اینکه پروتکل های مربوط به مسیردهی, کنترل ترافیک و لایه کنترل دسترسی شبکه سعی دارند با هزینه و سربار[۲۳] کمتری کار کنند مشکلات امنیتی بوجود می آورد مثلا برای شبکه های حسگر در مقیاس بزرگ برای کاهش تأخیر بسته هایی که در مسیر طولانی در طول شبکه حرکت می کنند یک راه حل خوب این است که اولویت مسیردهی به بسته های عبوری داده شود. همین روش باعث می شود حمله های سیلی[۲۴] مؤثرتر باشد. یکی از نقاط ضعف شبکه حس/کارکمبود منبع انرژی است و دشمن می تواند با قرار دادن یک گره مزاحم که مرتب پیغام های بیدار باش بصورت پخش همگانی با انرژی زیاد تولید می کند باعث شود بدون دلیل گره های همسایه از حالت خواب[۲۵] خارج شوند. ادامه این روند باعث به هدر رفتن انرژی گره ها شده و عمر آنها را کوتاه می کند. با توجه به محدودیت ها باید دنبال راه حل های ساده و کارا مبتنی بر طبیعت شبکه حس/کار بود. مثلا اینکه گره ها با چگالی بالا می توانند توزیع شوند و هر گره دارای اطلاعات کمی است یا اینکه داده ها در یک مدت کوتاه معتبرند از این ویژگی ها می توان بعنوان یک نقطه قوت در رفع مشکلات امنیتی استفاده کرد. اساسا‏ً چالشهای زیادی در مقابل امنیت شبکه حس/کاروجود دارد. و مباحث تحقیقاتی مطرح در این زمینه گسترده و پیچیده است.

 

۱۲- عوامل پیش بینی نشده: یک شبکه حسگر کارانداز تابع تعداد زیادی از عدم قطعیت هاست. عوامل طبیعی غیر قابل پیش بینی مثل سیل زلزله, مشکلات ناشی از ارتباط بی سیم و اختلالات رادیویی, امکان خرابی هر گره, کالیبره نبودن حسگرها, پویایی ساختار و مسیردهی شبکه, اضافه شدن گره های جدید و حذف گره های قدیمی, جابجایی گره ها بطور کنترل شده یا در اثر عوامل طبیعی و غیره. سؤالی که مطرح است این است که در این شرایط چگونه میتوان چشم اندازی فراهم کرد که از دیدگاه لایه کاربرد شبکه یک موجودیت قابل اطمینان در مقیاس بزرگ دارای کارایی عملیاتی مشخص و قابل اعتماد باشد. باتوجه به اینکه شبکه های حسگر کارانداز تا حدود زیادی بصورت مرکزی غیر قابل کنترل هستند و بصورت خودکار یا حداقل نیمه خودکار عمل میکنند باید بتوانند با مدیریت مستقل بر مشکلات غلبه کنند. از این رو باید ویژگی های خود بهینه سازی[۲۶] خود سازماندهی[۲۷] و خود درمانی[۲۸] را داشته باشند. اینها از جمله مواردی هستند که بحث در مورد آنها آسان ولی تحقق آن بسیار پیچیده است. بهرحال این موضوعات ازجمله موارد تحقیقاتی می باشند

 

 

نمونه ی پیاده سازی شده شبکه حس/کار

ذره ی میکا[۲۹]

یک نمونه از پیاده سازی سخت افزاری گره های حسگر ذره میکا دانشگاه برکلی امریکا است.این نمونه, یک واحد حس/کار کوچک (چندین اینچ مکعب) با یک واحد پردازنده مرکزی[۳۰],منبع تغذیه,رادیو و چندین عنصر حسگر اختیاری می باشد. پردازشگر آن یک پردازنده ۸- بیتی از خانواده ی اتمل[۳۱] می باشد همراه با ۱۲۸ کیلو بایت حافظه ی برنامه, ۴کیلوبایت RAM برای داده ۵۱۲کیلوبایت حافظه ی فلش .این پردازنده فقط یک کمینه از مجموعه دستورالعمل های ریسکRISK) )را بدون عمل ضرب, شیفت با طول متغیر و چرخش پشتیبانی می کند.رادیوی آن یک رادیوی مصرف پایین۹۱۶ مگاهرتز با پهنای باند۴۰ کیلو در ثانیه روی یک کانال تسهیم شده منفرد با محدوده ی نزدیک به ۱۲ متر می باشد. رادیو در حالت دریافت ۴٫۸ میلی آمپر, در حالت ارسال تا ۱۲میلی آمپر ودر حالت خواب ۵ میکرو آمپر مصرف می کند.

 

 

 

 

شکل(۶) ذره میکا

 

ذره میکا در اندازه های مختلف وجود دارد,کوچکترین آن اغلب به عنوان غبار هوشمند[۳۲] شناخته می شود.طرح پژوهشی غبار هوشمند که به وسیله ی پروفسور پیتستر[۳۳]وکان[۳۴] رهبری و هدایت می شود موفق به دستیابی حدی برای اندازه ومصرف توان[۳۵] در گره های حسگر خود مختار شده است.کاهش اندازه برای ساختن گره های ارزان و البته تسهیل گسترش آن بسیار مهم است.گروه تحقیقاتی امیدوارند که ضمن حفظ موثر توانایی های حسگری وارتباطی می توانند موارد لازم حسگری , مخابره اطلاعات و محاسبات سخت افزاری همراه با منبع تغذیه را در اندازه ای در حدود چند میلیمتر مکعب فراهم کنند. این گره میلیمتر مکعبی غبار هوشمند نام دارد که حقیقتاَ قلمرو چیزهای ممکن شدنی است.چنان که نمونه های آتی آن می تواند به قدری کوچک باشد که معلق در هوا باقی مانده و به وسیله جریان هوا شناور شود و برای ساعت ها یا روزها موارد حس شده را ارسال کند. غبار هوشمند می تواند اطلاعات را با استفاده از یک تکنولوژی بازتابنده ی نوری جدید, به صورت غیر فعال[۳۶] ارسال کند این یک راه معقول وارزان برای پراب[۳۷] یک سنسور یا تایید دریافت اطلاعات را فراهم می کند ارسال نوری فعال[۳۸] نیز ممکن است اما اتلاف انرژی بیشتری دارد.

 

شکل(۷) ساختار داخلی غبار هوشمند

 

بررسی نرم ا فزارهای شبیه سازی شبکه

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

۱-پیدایش و گسترش شبکه هایی باتکنولوژی پیچیده

۲-خلق ابزار ها و نرم افزارهای خاص شبیه سازی شبکه ها

نرم افزارهای شبیه ساز شبکه توانایی شبیه سازی شبکه های ارتباطی را بدون نیاز به کد نویسی و معمولآ از طریق واسط های گرافیکی فراهم می کنند. وجود عناصر شبیه سازی شده ای متناظر با عناصر واقعی ( روترها و سوئیچ ها ، … ) در این گونه موارد علاوه بر بالا بردن دقت ، باعث افزایش سهولت و سرعت در فرآیند شبیه سازی می شود و به این ترتیب برای کاربران ناآشنا با فن برنامه نویسی بسیار مناسب می باشد.

 

خصوصیات لازم برای شبیه سازهای شبکه

 

خصوصیاتی که شبیه سازهای شبکه باید داشته باشند عبارتند از :

۱-انعطاف در مدل سازی :

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

۲-سهولت در مدل سازی :

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

۳-اجرای سریع مدل ها :

زمان پردازش در شبیه سازی های بزرگ برای شبکه هایی با تعداد زیاد گره بسیار مهم می باشد که لازمه آن مدیریت صحیح حافظه می باشد.

۴-قابلیت مصور سازی :

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

۵- قابلیت اجرای مجدد و تکراری شبیه سازی :

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

۱- وجود ماژول های درونی از پیش آماده شده متناظر با عناصر و پروتکل های شبکه .

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

۳-حمایت از کاربران به بهنگام سازی های به موقع (بخصوص در مورد پروتکلهای جدید) بهمراه مستندات کامل و گویا.

۴- ارائه گزارشهایی از پارامتر های کارایی شبکه (نرخ خروجی، بهره وری ، تآخیر انتقال،…) در قالب ارقام و منحنی ها به همراه امکان انجام عملیات آماری روی نتایج از دیگر ویژگی های مثبت یک شبیه ساز می باشد.

 

شبیه ساز NS(v2)

شروع به کار این نرم افزار به پیش از پروژه VINT مربوط می گردد.شبیه ساز NS در سال ۱۹۸۹توسط گروه تحقیقاتی شبکه NRG در آزمایشگاه LBNL و بر اساس شبیه ساز شبکه دیگری موسوم به REAL طراحی شده است که توسعه آن تا امروز ادامه داشته و بخصوص پس از انتخاب شدن به عنوان ابزار شبیه ساز پروژه VINT جدیت و سرعت یافته است.آخرین نسخه آن NS 2.1b8 روی شبکه اینترنت قابل دسترسی می باشد.

 

 

 

 

معماری درونی :NS

NS2 از گونه شبیه سازهای رویدادگردان می باشد و از طریق پیگیری رخدادها در طول زمان های گسسته ، شبیه سازی را پیش می برد این شبیه ساز در دو محیط برنامه نویسی C++ و OTCL و بصورت شیئ گرا طرح شده .NS بر اساس مدلی موسوم به VuSystem کار می کند که در ادامه به طور خلاصه در مورد آن توضیح می دهیم.

 

مدل VuSystem

شبیه سازهای شبکه عمدتآ از دو بخش با تمایلات گوناگون تشکیل یافته اند :

۱-گروهی از بلاک های سازنده که عناصری همچون گره ها ، لینک ها ، صف ها ، مولدهای ترافیک و پروتکل ها را شبیه سازی می کنند.

 

 

 

 

۲-یک رابط که معمولآ از آن تحت عنوان زبان تشریح شبیه سازی یا SDL یاد می شود و وظیفه دارد بلوک های سازنده فوق را در فرآیند شبیه سازی به یکدیگر متصل کند.

در مورد این دو بخش یک مشکل اساسی پیش روی طراحان شبیه سازهای شبکه وجود دارد. در حالی که برای بلوک های سازنده کارایی و سرعت اجرا هدف اصلی می باشد.SDL نیازمند انعطاف و سهولت تغییر در پیکر بندی می باشد و نیل به این دو هدف با یک محیط برنامه نویسی واحد مشکل مینماید.بنابراین مدل VuSystem که توسط David Wetherall در دانشگاه MIT پیشنهاد شده ، راه حل را در استفاده از دو محیط برنامه نویسی جداگانه برای دو بخش فوق می داند.مطابق این مدل بلوک های سازنده با یک زبان کامپایلی (برای مثال C++ ) و بخش رابط آنها در یک محیط مفسری (مانند OTCL) پیاده سازی می شوند.

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

 

شبیه ساز OMNeT++

 

OMNeT++ یک شبیه ساز شیئ گرا می باشد و از دسته نرم افزارهای discrete event است. ++ OMNeT مخفف Objective Modular Network است و مبتنی بر C++ است. چون این نرم افزار در محیط C++ نوشته شده است در اغلب محیط ها باکامپایلر C++ قابل اجرا می باشد. به وسیله DoS و X- windowپشتیبانی شده و به Win3.1 و Win95 و WinNT قابل حمل است. نویسنده این نرم افزار با یک شرکت مجارستانی توزیع کننده  OPNETهمکاری داشته است. این فرد عضو چندین پروژه شبیه سازی شبکه بوده و مدل شبیه سازی سیستم VSAT در OPNET را نوشته است. از لحاظ ساختاری این نرم افزار سلسله مراتبی از ماژول های تو در تو می باشد که ماژول ها از طریق تبادل پیغام با یکدیگر در ارتباط هستند. در پائین ترین سطح این سلسله مراتب ماژول های خود کاربر قابل ایجاد می باشند. می تواند اجرای شبیه سازی را به صورت موازی پیش ببرد.با این نرم افزار هر نوع مکانیزم زمانبندی قابل بکار گیری است.زبان متنی برای توصیف توپولوژی دارد که به آن NED گویند و بوسیله هر ابزار پردازشگر متنی (مانند perl و awk) قابل ایجاد است. همین فرمت بوسیله ادیتور گرافیکی قابل بکار گیری است. ++OMNeT واسط قوی برای دیباگ کردن و تریس کردن فراهم می کند.

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

 

شکل(۸)

 

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

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

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

در ساختار سلسله مراتبی پیام ها از طریق لینک ها یا اتصالات قابل انتقال هستند که مبدأ و مقصد پیغام ها ماژول های ساده می باشند.به سری لینک ها یا اتصالاتی که از یک ماژول ساده شروع و به یک ماژول ساده ختم می شود مسیر (route) گویند.

پارامترهای زیر را می توان برای یک لینک مقداردهی نمود:

 

۱-(sec) Propagation Delay

۲-(errors/bit) bit error rate

۳- (bits/sec) data rate

 

شکل(۹)

 

شبیه ساز Ptolemy II

این گزارش مدل سازی و چهارچوب شبیه سازی نرم افزاری را که visualsense نامیده می شود و برای شبکه های حسگر[۳۹] به کار گرفته می شود را شرح می دهد.این نرم افزار بر روی نرم افزار Ptolemy II (بطلمیوس)تشکیل شده است.

این چهار چوب تعریف اکتور گرا[۴۰] از شبکه های حسگر,کانال های انتقال بی سیم ,رسانه های فیزیکی از قبیل کانال صوتی و زیر سیستم های سیمی[۴۱] را پشتیبانی می کند.

ساختار نرم افزار شامل یک مجموعه ای از کلاس های پایه برای تعریف کانال ها و گره های حسگر است. یک کتابخانه از زیر کلاس ها , برخی مدل های کانال و مدل های گره و یک چهارچوب ویژوالی گسترش پذیر را , فراهم می کند. گره های مرسوم می توانند بوسیله زیرکلاسِ کلاسهای پایه و تعریف رفتار در جاوا یا بوسیله ایجاد مدل های ترکیبی با استفاده از چند محیط مدل سازی Ptolemy II ایجاد و تعریف گردند.

 

 

شکل(۱۰)

Visualsense  یک پیکر بندی از Ptolemy II است که طراحی مؤلفه گرا از شبکه های حسگر و شبیه سازی طبیعی و ویژوالی آن را فراهم می کند.

دامنه[۴۲]DE در Ptolemy II مدل های با توپولوژی های اتصال داخلی که به طور پویا تغییر می کنند, را پشتیبانی می کند.تغییرات در اتصالات به عنوان تغییر در ساختار مدل بحث می شود. نرم افزار به طور دقیق برای پشتیبانی از دسترسی چند نخ کشی شده[۴۳] به این قابلیت تغییر و دگرگونی طراحی شده است.بنابراین یک نخ می تواند شبیه سازی مدل را در حالی اجرا کند که نخ دیگر ساختار مدل را تغییر می دهد, برای مثال بوسیله اضافه کردن , حذف یا حرکت اکتور ها تا تغییرات اتصالات میان اکتورها , نتیجه قابل پیشگویی و سازگار است.

سر راست ترین استفاده های دامنه DE در Ptolemy II شبیه به دیگر چهارچوب های مدل کننده رویداد گسسته از قبیل NS , OPNET , VHDL هستند .مؤلفه ها (که اکتور نامیده می شوند) پورت هایی دارند و پورت ها به هم وصل می شوند تا توپولوژی انتقال را مدل کند.Ptolemy II یک ویرایشگر ویژوالی[۴۴] برای ساخت به صورت بلوک دیاگرام تهیه می کند.(شکل ۱۱)

 

شکل (۱۱)مدل DE نمونه در Ptolemy,به عنوان بلوک دیاگرام نمایش داده شده است.

 

مدل سازی شبکه های بی سیم:

در این بخش, ما شرح می دهیم که چطور مدل هایی از شبکه های حسگر بی سیم[۴۵] ایجاد کنید و آن را اجرا کنید .

 

 

اجرای یک مدل پیش ساخته:

این یک مدل ساده شده از یک سیستم متمرکز صوتی است که در آن از میدانی از گره های حسگر استفاده می کند که یک صدا را شناسایی و بوسیله پیام رادیویی به مرکز[۴۶] گزارش می کند تا موقعیت صدا را مثلث بندی[۴۷] کند.شکل۱۲ نشان می دهد که مدل شامل Wireless Director ,که به عنوان یک مدل بی سیم تعریف می کند, دو مدل کانال(یک مدل کانال رادیویی و یک مدل کانال صوتی) یک تعدادی یادداشت(متون شرح دهنده مدل) و اکتور هایی در مدل است.هر یک از این مؤلفه ها یک نقش در مدل ایفا می کند. هدایت کننده[۴۸] در اجرای مدل پا به میان می گذارد.مدل های کانال با ارتباط میان اکتور ها سروکار دارد.اکتور ها سیگنال هایی از طریق کانال می فرستند و دریافت می کنند.

 

شکل(۱۲) نمایش Visualsense از مدل wireless sound detection

 

مدل قابل اجراست.روی مثلث قرمز رنگ در نوار ابزار کلیک کنید ,در نتیجه اکتور منبع صوت (که با دوایر متحد المرکز شفاف نمایش داده شده است)در یک الگوی دایره ای شروع به حرکت می کند که بوسیله یک فلش آبی رنگ در شکل ۱۳ نمایش داده شده است. اکتور منبع صوت رویداد هایی از طریق مدل کانال صوتی منتشر می کند.این رویدادها با یک تاخیر زمانی که بستگی به فاصله میان گره های دایره ای آبی رنگ دارد, منتشر می شود.موقعی که این گره ها صدا را شناسایی می کنند,آنها یک سیگنال رادیویی از طریق مدل کانال رادیویی پخش می کنند و آیکون های آنها به رنگ قرمز تغییر می کند تا به طور ویژوالی نشان دهد که آنها این کار را انجام داده اند. سیگنال های رادیویی شامل یک مهر زمانی رویداد صوتی شناسایی شده است.اکتور مثلثی[۴۹] در مرکز (که با یک آیکون سبز رنگ نشان داده است)این سیگنال رادیویی را دریافت می کند(اگر آن در برد فرستنده باشد),و مهر های زمانی را برای تخمین موقعیت منبع صوت استفاده می کند. آن سپس موقعیت را ترسیم می کند, نتیجه در نمودار شکل ۱۳ نشان داده شده است.

 

شکل(۱۳)نمایش مدل در حال اجرا

 

 

 

تغییر پارامترها :

مدل پارامترهایی دارد که شما می توانید با آنها آزمایش انجام دهید.پارامتر های دو مؤلفه ی منبع صوت و کانال صوتی در شکل ۱۴ نشان داده شده است. برای بدست آوردن صفحه پارامترها روی اکتور دابل کلیک کنید و یا روی آن راست کلیک کرده و گزینه configure را انتخاب کنید.این منبع صوت یک پارامتر دارد که soundRange نام دارد. اگر شما مقدار پارامتر از ۳۰۰ متر مثلا به ۵۰۰ متر آنگاه آیکون دایره ای برای اکتور افزایش می یابد,و اجرای مجدد مدل منجر به افزایش خط سیر منبع صوت مثلث بندی شده[۵۰] می شود.در پارامتر های کانال صوتی , شما می توانید یک مقدار غیر صفر برای lossProbability تنظیم کنید, در این مورد فقط بعضی از رویداد های صوتی شناسایی خواهند شد.تنظیم seed به یک مقدار غیر صفر باعث می شود تا آزمایش تکرار پذیر باشد, بدین معنی که هر آزمایش همان توالی از اعداد را ایجاد خواهد کرد. رها کردن Seed در مقدار پیش فرض “۰L” آزمایش جدیدی را در هر اجرا ثمر می دهد.

 

شکل(۱۴)پارامتر های اکتور منبع صوت(سمت چپ)و مدل کانال صوتی(سمت راست)

 

ساختار یک مدل پیش ساخته:

 

۱ ) نمایش بصری(آیکون ها):

ابتدا اکتور منبع صوت را بررسی کنید.در ابتدا توجه کنید که چه طور آیکون آن موقعی که پارامتر soundRange را تغییر می دهید , عوض می شود.تعریف آیکون می تواند بوسیله راست کلیک روی آیکون و انتخاب “Edit Custom Icon” نمایش داده شود(ویرایش شود).توجه کنید که برای این اکتور ,شما باید ماوس را روی خط دور یکی از دایره های متمرکز قرار دهید.پنجره ظاهر شده در شکل ۱۵ نمایش داده شده است.به یاد داشته باشید که فقط بخش مرکزی آیکون قابل مشاهده است.در نوار ابزار روی Zoom Fit (همچنانکه در شکل ۱۵ قابل مشاهده است) برای دریافت تصویر کامل کلیک کنید(شکل ۱۶ را ببینید).کتابخانه در سمت چپ می تواند برای اضافه کردن آیتم ها به آیکون استفاده شود.

به دایره بیرونی توجه کنید,اندازه آن موقعی که پارامتر soundRange تغییر داده شود ,تغییر پیدا می کند.روی آن دابل کلیک کنید (یا راست کلیک کنید و Configure را انتخاب کنید),پنجره پارامتر در شکل ۱۷ ظاهر می شود.توجه کنید که پارامتر های width وheight بوسیله عبارات با مقدار “soundRange*2” داده شده است.زبان اصطلاحی که می تواند اینجا استفاده شده است قدرتمند است.

 

 

 

 

 

 

 

 

 

 

 

 

 

شکل(۱۵)انتخاب “edit custom icon” بعد از کلیک راست روی منبع صوت

 

 

 

شکل(۱۶)نتیجه کلیک روی Zoom fit در نوار ابزار

 

ما می توانیم دایره بیرونی با یک رنگ نیمه شفاف که درجه ماتی آن به پارامتر soundRange بستگی دارد (شکل ۱۸) .در این شکل انتخاب کننده (در سمت راست نشان داده شده) برای انتخاب رنگ قرمز استفاده شد, و مقدار alpha از رنگ

 

شکل(۱۷)پارامتر های دایره بیرونی اکتور منبع صوت

 

 

 

,که چهارمین عنصر از آرایه تعریف کننده رنگ است, به طور دستی با “soundRange/1000.0” تنظیم شد.نتیجه در شکل ۱۹ نشان داده شده است.

 

 

 

شکل(۱۸)تنظیم fill color دایره بیرونی منبع صوت که به SoundRange بستگی دارد

 

 

 

 

 

شکل(۱۹)نتیجه تغییر رنگ دایره بیرونی منبع صوت

 

 

۲)کانال ها :

مدل نشان داده شده درشکل ۱۲ دو مدل کانال دارد که در شکل ۲۰ باضافه پارامترهایشان نشان داده شده است. شما می توانید ببینید که تنها اختلاف میان این دو کانال(گذشته از نام آنها)مقدار پارامتر propagationSpeed است.برای کانال رادیویی ,آن با مقدار “Infinity” تنظیم می شود,ر حالی که برای کانال صوتی ,آن با “۳۴۰٫۰”(meters/second) تنظیم می شود.

توجه کنید که هر دو کانال یک پارامتر به نام defaultProperties با مقدار “{range=Infinity}” دارند. این عبارت یک record با یک فیلد به نام ” range” با مقدار “Infinity” تعیین می کند. فیلد های پارامتر defaultProperties از یک کانال, مسیر هایی را که در یک ارسال ویژه می تواند به طور منحصر به فرد سفارشی شود را , تعیین کند .در این مورد ,یک ارسال ویژه از طریق هر کانال می تواند به طور اختیاری یک برد را تعیین کند.اگر آن تعیین نشود ,آنگاه پیش فرض استفاده می شود,که بی نهایت[۵۱] است,تعیین می کند که هیچ محدودیتی وجود ندارد. یک ارسال در رسیدن به گیرنده موفق خواهد بود و اهمیت ندارد که چقدر از گیرنده دور است.

 

شکل(۲۰)کانال شکل ۱۲ و پارامتر هایش

 

۳)اکتور های مرکب :

ما دیدیم که چه طور می توانیم نمایش ویژوالی از یک اکتور را سفارشی کنیم.چه طور ما می توانیم رفتار آن را تعیین کنیم؟ اکتور منبع صوت در شکل ۱۲ به طور واقعی یک composite actor است که رفتار آن به وسیله مدلPtolemy مشخص می شود.برای تشخیص این تعریف ,روی اکتور راست کلیک کنید و Look Insideرا انتخاب کنید .مدل داخلی در شکل ۲۱ نمایش داده شده است.

منبع صوت مرکب در شکل ۲۱ یک DE Director دارد که این مدل را به عنوان یک مدل رویداد گسسته از Ptolemy II تعریف می کند.مدل هایDE به خوبی با مدل های بی سیم کار می کنند.بنا بر این وجود مدل های DE در گره های بی سیم عادی است. پارامتر soundRange بعد از DE Director با مقدار پیش فرض ۳۰۰ نمایش داده شده است. مدل شامل دو بخش است ,بخش بالایی که یک رویداد صوتی را می فرستد,و یک بخش پایینی که آیکون را حرکت می دهد.

 

 

شکل(۲۱)نتیجه Look Inside اکتور منبع صوت در شکل ۱۲

 

 

در ابتدا به بخش بالاتر توجه کنید.آن یک کلاک[۵۲] و یک port که “soundPort” نامیده می شود دارد.(شکل ۲۲) پارامترهای هم کلاک و هم پورت بوسیله دابل کلیک روی آنها (یا راست کلیک روی آنها و انتخاب configure) بدست می آیند, همچنین در شکل نشان داده شده اند. به یاد داشته باشید که period کلاک با ۲٫۰ تنظیم می شودو values با{۱} تنظیم می شود,یک آرایه تک عنصری با عدد صحیح ۱٫ این اشاره دارد به این که کلاک باید یک صوت را هر دو ثانیه تولید کند. مقدار تولید شده عدد صحیح ۱ است که هیچ معنی خاصی ندارد.

مؤلفه soundPort نیز پارامتر هایی دارد, همچنانکه در شکل ۲۲ نشان داده شده است. پارامتر outsideChannel یک پارامتر با مقدار رشته ای است که مقدار “SoundChannel” را دارد.این نام کانالی است که این پورت برای ارسال استفاده خواهد کرد, و باید مطابق با نام کانال نشان داده شده در شکل ۲۰ باشد.پارامتر outsideTransmitProperties مقدار ” {range=soundRange}” را دارد که یک record با یک فیلد به نام “range” با مقدار داده شده با عبارت “soundRange” دارد,که به سادگی مقدار از پارامتر soundRange از اکتور مرکب بدست می آید.توجه داشته باشید که این کار مقدار پیش فرض بی نهایت را برای این فیلد , باطل خواهد ساخت.بنابراین پارامتر soundRange فقط ظاهر ویژوالی آیکون را کنترل نمی کند,بلکه برد ارسال را نیز کنترل می کند.

به منظور تصمیم گیری که آیا گیرنده در برد هست یا خیر,همه نمونه های ایجاد شده توسط Visualsense موقعیت آیکون را به عنوان یک نمایشی از موقعیت گره استفاده می کنند.بخش هایی اختیاری اند .

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

 

شکل(۲۲)بخشی از مرکب در شکل قبلی که رویداد صوتی را تولید می کند

 

۴)کنترل اجرا :

WirelessDirector در شکل ۱۲ مؤلفه ای است که اجرای مدل را کنترل می کند.مانند اغلب مدل ها آن نیز پارامترهایی دارد پارامترهای آن در شکل ۲۳ نشان داده شده اند.توجه کنید که زمان توقف[۵۳] با “MaxDouble”

 

شکل(۲۳)پارامتر های wireless director در شکل ۱۲

 

 

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

توجه کنید که پارامتر synchronizeToRealTime از Director کنترل می شود.این بدین معنی است که هنگامی که مدل را اجرا می کنید,اکتور کلاک که یک صوت را در هر ۲ ثانیه یکبار تولید می کند,اجازه داده نخواهد شد تا رویداد هایی را در سرعت بیشتر ایجاد کند.این پارامتر برای دریافت مقیاس های زمانی واقع گرایانه هنگام اجرا استفاده می شود.معمولا ,این پارامتر باید برای مدل های در حال اجرا کنترل شود.دیگر پارامترهای Director درباره میزان سازی عملکرد شبیه ساز رویداد گسسته است.آنها فراتر از قلمرو این گزارش هستند.

 

۵)ساخت یک مدل جدید :

حالا ما می خواهیم به ایجاد یک مدل شبکه بی سیم حسگر جدید بپردازیم.در هر پنجره Visualsense , FileàNewàGraph Editor را انتخاب کنید.این کار پنجره ای مانند آنچه در شکل ۲۴ نشان داده شده را نتیجه می دهد.آن شامل یک Wireless Director است,و نه هیچ چیز دیگری .PowerLossChannel را از کتابخانه ی WirelessChannel در سمت چپ بکشید[۵۴],همچنانکه در شکل ۲۵ نشان داده شده است.

به پارامتر های این کانال توجه کنید , که در شکل ۲۵ نشان داده شده است .دقت کنید که پارامتر defaultProperties شامل یک رکورد به همراه دو فیلداست,{range=Infinity, power=Infinity}.این کانال می تواند برای مدل های مختلف در توان ارسال و همچنین اتلاف توان به عنوان تابعی از فاصله استفاده شود. ما مدلی را خواهیم ساخت که اگر گیرنده به اندازه کافی توان دریافت کند ارتباط را بدست می آورد,در غیر این صورت ارتباط را بدست نخواهد آورد.

Documentation برای اکتور PowerLossChannelو(سایر اکتورها) می تواند بوسیله کلیک راست روی اکتور و انتخابGet Documentation بدست بیاید.در این مثال , ما صفحه نمایش داده شده در شکل ۲۶ را خواهیم داشت که متن تولید شده برای کلاس جاوا که این کانال را مشخص می کند , نشان می دهد.بالای این صفحه نمایش, ارث بری زنجیره ای این اکتور نمایش داده شده که اشاره دارد به اینکه , اکتور از LimitedRangeCannel توسعه یافته است.به همین ترتیب از DelayChannel و بعد از ErasureChannel و آن نیز از AtomicWirelessChannel  گسترش می یابد.هر یک از این کانال ها مقدار کمی سودمندی را اضافه می کنند, و کد منبع[۵۵] برای هر یک به عنوان یک مثالی از اینکه چه طور مدل های کانال را تعریف می کنند , فراهم می شود.شما می توانید کد منبع را با راست کلیک و انتخاب Look Inside ببینید.(شکل ۲۷).به عنوان مثال در شکل ۲۷ متن , پارامتر powerPropagationFactor را توضیح می دهد.

 

 

 

 

 

 

شکل(۲۴)پنجره ساخت یک مدل جدید

 

 

شکل(۲۵)مدل جدید ثابت شده با یک کانال

 

 

شکل(۲۶)پنجره documentation برای PowerLossChannel

 

“انتشار توان به عنوان یک عبارتی که ارزیابی می شود و سپس در فیلد توان از مشخصات ارسال قبل از رها سازی به گیرنده ضرب می شود.برای راحتی کار ,یک متغیرکه distance نامیده شده در دسترس است و معادل با فاصله میان فرستنده و گیرنده است موقعی که فرمول انتشار توان ارزیابی می شود.بنابراین, عبارت می تواند به این فاصله بستگی داشته باشد .مقدار فیلد توان باید به عنوان توان در فرستنده تفسیر شود ولیکن به عنوان چگالی توان در گیرنده باید تفسیر گردد.یک گیرنده ممکن است چگالی توان را با بازدهی اش و یک قلمرو(به طور نمونه قلمرو آنتن ) افزایش دهد.یک گیرنده می تواند سپس توان بدست آمده را برای مقایسه در برابر یک آستانه قابل کشف,یا برای تصمیم گیری نسبت سیگنال به تداخل, برای استفاده کرد.

مقدار پیش فرض powerPropagationFactor 1.0/(4*PI*distance*distance) است.فرض بر این است که توان ارسال به صورت یکنواخت در یک کره به شعاع distance توزیع شده است.نتیجه افزایش این بوسیله یک توان ارسال چگالی توان(توان بر واحد سطح)است.گیرنده باید این چگالی توان را بوسیله قلمرو حسگری که آن را برای گرفتن انرژی استفاده می کند,افزایش دهد(مثل ناحیه آنتن) و همچنین یک فاکتور بازدهی که نشان می دهد که چه طور آن به طور مؤثر انرژی را می گیرد.

 

 

شکل(۲۷)منبع کد برای PowerLossChannel

 

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

به ما اجازه بدهید تا یک مدل را با استفاده از این پارامتر ها بسازیم.

دو نمونه از WirelessComposite را از کتابخانه ActoràWirelessActors  در سمت چپ بکشید. آنها را به Transmitter و Receiver بوسیله کلیک راست روی آنها و انتخاب Customize Name تغییر نام دهید(شکل ۲۸).این مؤلفه ها به پورت نیاز دارند .برای ایجاد آن روی آنها کلیک راست کنید و Configure Ports را انتخاب نمایید.روی دکمه ADD کلیک کنید و یک پورت خروجی با نام output برای فرستنده ایجاد کنید و یک پورت

شکل(۲۸)مدل ثابت شده با دو نمونه از wirelesscomposite

 

ورودی به نام input برای گیرنده ایجاد کنید(شکل ۲۹). روی هر پورت کلیک راست کرده و configureرا انتخاب کنید و outsideChannel را با “PowerLossChannel” مشخص کنید(این قسمت باید واقعا با نام کانال منطبق باشد).

 

شکل(۲۹)مدل با پورت های اضافه شده به فرستنده و گیرنده

 

ما کار فرستنده و گیرنده با مدل های ساده از گره ها شروع می کنیم. برای انجام این کار,فرستنده را Look Inside می کنیم,که پنجره شکل ۳۰ حاصل می شود.توجه کنید که پورت خروجی در بالا سمت چپ واقع شده است.آن را به یک مکان قابل قبول تر انتقال دهیدو به آن یک نمونه از اکتور PoissonClock از کتابخانه ActorsàSourceàTimedSource را اتصال دهید(شکل ۳۱).برای ساخت یک اتصال, از پورت خروجی اکتور PoissonClock کلیک کنید و بکشید,یا Ctrl+Click کرده و از پورت خروجی فرستنده به پورت خروجی اکتور PoissonClock بکشید.اکتور PoissonClock رویدادهایی را در زمان های تصادفی تولید می کند, در جایی که زمان بین رویدادها از یک متغیر تصادفی نمایی با ابزار داده بوسیله پارامتر meanTime از پوآسون کلاک بدست می آید.مقدار پیش فرض آن ۱٫۰ استکه برای اهداف ما مناسب است.اگر به پنجره بالاتر بر گردید و روی WirelessDirector دابل کلیک کنید تا پارامتر synchronizeToRealTime آن را ست کنید, سپس فرستنده رویداد هایی را با نرخ متوسط یک در ثانیه تولید خواهد کرد.

 

شکل(۳۰)درون فرستنده

 

شکل(۳۱)فرستنده تکمیل شده

اکتور گیرنده را Look Inside کنید و مدل نشان داده شده در شکل ۳۲ را بسازید. اکتور Ramp می توانید در کتابخانه اکتورها تحت مسیر زیر پیدا کنید:

 

SourceàSequenceSource

و اکتور display را از مسیر زیر بیابید:

SinksàGenericSinks

 

همچنانکه در سمت چپ شکل نشان داده شده است.حال مدل آماده اجرا می باشد.روی مثلث قرمز رنگ در نوار ابزار کلیک کنید نتیجه اجرا در display در شکل ۳۳ نشان داده شده است.Ramp تعدادی از ورودی ها را تولید می کند. اگر شما به یاد داشته باشید که پارامتر synchronizeToRealTime را ست کنید,سپس تعدادی عدد در زمانهای تصادفی با فاصله میانگین یک ثانیه ظاهر خواهد شد.

شما ممکن است بخواهید تا فایل خود را ذخیره کنید(FileàSave).از پسوند .xml(یا moml) استفاده کنید تا مطمئن شوید که Visualsense این را به عنوان یک فایل مدل تشخیص خواهد داد.

 

 

 

 

 

شکل(۳۲)گیرنده تکمیل شده

 

 

 

 

 

 

شکل(۳۳)display که نتیجه اجرای توضیح داده شده بالا را نمایش می دهد

 

 

 

اجازه دهید که این مدل را برای اینکه اتلاف توان کانال به عنوان تابعی از فاصله مشاهده شود,اصلاح نماییم.برای انجام این کار ,اکتور GetProperties در کتابخانه ActoràWirelessActor پیدا کنید,وجایگزین اکتور Ramp در داخل گیرنده کنید (شکل ۳۴) .حال مدل را اجرا کنید نتایج در display در شکل ۳۵ وجود دارد.توجه کنید که توان دریافت شده همیشه بی نهایت است,که بسیار مفید نیست.

 

 

 

شکل(۳۴)گیرنده اصلاح شده که مشخصات دریافت شده را نمایش می دهد.

 

 

 

شکل(۳۵)display که نتیجه استفاده از گیرنده طراحی شده در بالاست.

 

در واقع,فرستنده توان ارسال را مشخص نکرده است,و PowerLossChannel یک توان پیش فرض بی نهایت دارد,همانند شکل ۲۵٫ اتلاف توان معرفی شده توسط کانال نا مربوط است,زیرا در این مدل توان ارسال بی نهایت است و موقعی که اتلاف غیر صفر افزوده می شود,باز هم توان بی نهایت حاصل می شود.

برای آنکه به یک مدل معقول تری از اتلاف انرژی دست پیدا کنیم توان انتقال را بوسیله کلیک راست روی پورت خروجی فرستنده و تنظیم پارامتر outsideTransmitProperties به “{power=1.0}” تنظیم کنید(شکل ۳۶) اجرای مجدد شبیه شکل ۳۷ خواهد بود ,که تغییر پذیری سطح توان بوسیله حرکت گیرنده در اطراف فرستنده در حالیکه مدل در حال اجراست,بدست می آید.

 

 

شکل(۳۶)تنظیم توان ارسال فرستنده

 

شکل(۳۷)display که نتیجه استفاده از مجموعه توان ارسال را در شکل بالا نشان می دهد.

 

 

 

 

 

به شکل ۳۷ توجه کنید که یکی از مقادیر توان دریافت شده بی نهایت دارد.این موقعی رخ می دهد فرستنده وگیرنده بر یکدیگر منطبق باشند.ازDocumentation برای PowerLossChannel فراخوانی کنید که مقدار فیلد Power در مشخصات دریافت شده یک چگالی توان است,نه یک توان مطلق .از این رو اگر فرستنده و گیرنده یک فضای فیزیکی را اشغال کنند و فرستنده یک منبع نقطه ای باشد,آنگاه چگالی توان در گیرنده بی نهایت است.به طور نمونه, یک مدل گیرنده این چگالی توان را بوسیله یک سطح آنتن دهی مؤثر و یک بازده آنتن دهی افزایش خواهد داد تا یک سطح توان دریافت شده مطلق را دریافت کند.

چگالی توان دریافت شده می تواند برای تصمیم گیری در گیرنده که آیا ارسال موفق بوده یا خیر استفاده گردد.برای انجام این کار مدل گیرنده را برای دریافت ساختار نمایش داده در شکل ۳۸ اصلاح می کنیم.اکتور های استفاده شده در مسیرهای زیر قرار دارند:

 

 

 

RecordDisassembler:ActoràFlowControlàAggregators

Expression:ActorsàMath

BooleanSwitch:ActorsàFlowControlàBooleanFlowControl

 

 

 

 

 

شکل(۳۸)مدل گیرنده که رویداد را صرف نظر می کند در جایی که توان زیر مقدار آستانه باشد

 

 

اکتور RecordDisassembler فیلد هایی از یک رکورد را استخراج می کند.برای استفاده از آن ,شما باید پورت های خروجی را که همان نام فیلد را دارند, که در این مورد Power است را ایجاد کنید.برای استفاده از اکتورExpression ,باید پورت های ورودی را ایجاد کنید,و هر نامی را که می خواهید استفاده کنید(“Power” در شکل ۳۸),و سپس یک عبارت را که خروجی ها را در قالب ورودی ها مشخص می کند,بدهید( در شکل ۳۸ “Power>1.0E-6”).خروجی اکتور Expression ,درست(true) خواهد بود اگر توان دریافت شده بزرگتر از مقدار بیان شده درExpression باشد, و در غیر این صورت اشتباه(false)خواهد بود. این سیگنالBoolean پورت control از Booleanswitch را راه اندازی می کند, که ورودی اش را به یکی از دو خروجی بسته به مقدار ورودی کنترل ,می فرستد.در این مورد ما فقط خروجی true ,که مقادیر توان دریافت شده بیش از مقدار بیان شده درExpression است را مشاهده می کنیم.

توجه کنید که در شکل ۳۸ بعضی اتصالات شامل یک لوزی سیاه کوچک هستند,این مکانیسم ویژوالی برای مسیر دهی یک سیگنال به چندین مکان است.برای ایجاد یک چنین لوزی (کهvertex نامیده می شود)با استفاده از ctrl+click یا با استفاده از نوار ابزار آن را ایجاد کنید و برای ایجاد یک اتصال از آن کلید ctrl را نگه داشته,روی لوزی کلیک کرده و اتصال را به مکان دلخواه بکشید و آن را رها کنید.

 

 

۶) به کارگیری اکتور plot :

اغلب برای یک مدل در ترسیم داده ها نسبت به نمایش آن در حالت متنی مفید است.مدل شکل ۳۸ را به مدل نشان داده شده در شکل ۳۹ اصلاح کنید,که درآنجا اکتور Display بوسیله Timedplotter از مسیر زیرجایگزین شده است.

 

ActorsàSinkàTimedSinks

شکل(۳۹)گیرنده توان دریافت شده را به صورت تابعی از زمان رسم می کند.

 

نتیجه اجرا در شکل ۴۰ نمایش داده شده است.

 

 

شکل(۴۰)نمودار نشان دهنده توان دیافت شده به صورت تابعی از زمان

 

صفحه نمایش نمودار به طور قابل توجهی می تواند بهبود پیدا کند.در پنجره plot روی دکمه format در گوشه سمت راست کلیک کنید.(شکل ۴۰) تا پنجره شکل ۴۱ ظاهر گردد.پارامتر ها را همچنانکه در پنجره نتایج نشان داده شده در plot در شکل ۴۲ ,تنظیم کنید.

برای zoom کردن می توانید از دکمه های بالای آن استفاده کرد و یا از کلیک کردن روی display و کشیدن آن استفاده کرد.

 

شکل(۴۱)پنجره تنظیم فرمت نمودار

 

شکل(۴۲)نمودار تغییر کرده با استفاده از پنجره بالا

 

قابلیت های مدل سازی :

Visualsense  یک گسترشی از مدل ساز رویداد گسسته از Ptolemy II است.آن به طور گسترده ای معنای رویداد گسسته را حفظ می کند,اما مکانیسم اتصال مؤلفه ها را تغییر می دهد,بطوریکه سیم بندی آشکار نیاز نیست.در مدل ساخته شده در بخش قبلی ,مدل های سیمی و بی سیم به طور سلسله مراتبی ترکیب می شوند,در واقع همه Ptolemy II که یک مجموعه بسیار قدرتمندی از مکانیسم های مدل سازی است,می تواند برای ساخت مدل های گره های حسگر و اثرات انتشار استفاده شود.

در این بخش ,ما معانی رویداد گسسته را به طور صریح شرح می دهیم,و مدل کانالی را که برای تصمیم گیری اتصالات در شبکه های حسگر و مدل مؤلفه سلسله مراتبی را برای هر گره حسگر بحث می کنیم.ما سپس قابلیت ها را با مطرح کردن بعضی از مثال ها که بهبود یافته اند به عنوان نمونه هایی با سیستم,توضیح می دهیم.

 

۱)شبیه سازی رویداد گسسته :

Director یک نقش کلیدی در Ptolemy II بازی می کند: آن semantics را از یک مرکب[۵۷] تعریف می کند.آن مدل همزمانی (concurrency) و مکانیسم ارسال را ارائه می دهد.در Visualsense ,Director شبیه ساز را پیاده سازی می کند.Wireless Director یک زیر کلاس تقریبا تغییر نکرده از پیش موجود DEDirector در Ptolemy II است.

 

۲) مدل های کانال :

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

 

۳)مدل های گره بی سیم :

گره های حسگر در جاوا می توانند مدل شوند یا به طور جالب تری از مدل های DE مرسوم(به عنوان بلوک دیاگرام ) یا دیگر مدل های Ptolemy II (از قبیل مدل های DataFlow , ماشین های حالت متناهی یا مدل Continuous-time) استفاده کنند.رفتار Modal می تواند بوسیله طرح یک ماشین حالت متناهی و تهیه پالایش ها برای هر یک از حالت ها تعریف شود تا رفتار گره را در آن حالت مشخص کند. این برای مثال می تواند در مدل سازی مصرف انرژی به عنوان تابعی از حالت استفاده شود و مدل های ساختگی از تزویج میان مصرف انرژی و Mac Protocol را ممکن می سازد.

 

۴)مثال هایی از قابلیت مدل سازی :

اکثر قابلیت های مدل سازی اینجا با مثال شرح داده می شوند,که از پنجره ابتدایی در دسترس است.

۱-۴)ساختار بسته ها :

Ptolemy II شامل یک سیستم نوع پیچیده است که شامل انواع پیوسته مانند رکورد ها ست. در بالا ما نشان دادیم که چه طور رکورد ها می توانند برای مشخصات ارسال استفاده شوند. آنها همچنین می توانند برای ساخت بسته ها با بار مفید اختیاری استفاده شوند. مکانیسم یکسان است. RecordAssembler , RecordDisassembler , RecordUpdater می توانند برای مونتاژ و مجزا کردن رکورد ها استفاده شود.

 

۲-۴)اتلاف بسته ها :

مدل ErasuerChannel ,که یک کلاس پایه برای اغلب مدل های کانال است , پارامتر LossProbability را که می تواند برای مدل کردن مستقل, اتلاف بسته ها ی توزیع شده به طور مساوی استفاده شود, پیشنهاد می کند.

 

۳-۴)توان باتری :

از آنجایی که گره های حسگر در شبکه های بی سیم بوسیله مدل های اختیاری تعریف می شوند, ایجاد مدل های مصرف انرژی یا توان آسان است.یک مثال ساده تحت عنوان “Circular Range Channel” در شکل ۴۳ نشان داده شده, که در سمت راست شما می توانید فرستنده ای را که یک پوآسون کلاک را برای کاهش برد ارسال استفاده می کند تا کاهش برد ارسال در طول زمان را همچنانکه باتری آن تخلیه می شود, مدل کند.

 

 

 

شکل(۴۳)مدل اتلاف توان گیرنده ای که به سمت برد فرستنده حرکت می کند و به آن نزدیک می گردد.

 

 

 

۴-۴)اتلاف توان :

پنجره اولیه شامل یک مدل به نام “Power Loss Channel” که تغییر توان در گیرنده را به عنوان تابعی از فاصله توضیح می دهد.مدل سطح بالا,پیاده سازی گیرنده و یک نمودار منتج از اجرای آن در شکل ۴۴ وجود دارد.این مدل همان قاعده را به عنوان مثال خود آموز توضیح داده شده در بالا استفاده می کند.

 

 

 

شکل(۴۴)تخلیه باتری در طول زمان با مدل سازی تنزل برد ارسال

 

 

 

 

 

 

 

 

۵-۴)برخورد ها[۵۸] :

در معانی رویداد گسسته اساسی Visualsense ,رویدادها بلا فاصله در یک زمان بخصوص رخ می دهند.بدین معنی که آنها یک دوره زمانی(duration)ندارند.برای مدل کردن برخورد پیام ها که زمان گیرند و کانال عمومی را تسهیم[۵۹] می کنند صریحاً طول پیام[۶۰] را لحاظ کند.

یک مثال ساده از چنین مدلی در شکل ۴۵ آمده است.در این مدل دو فرستنده یک کانال را تقسیم می کنند و پیام های با طول ثابتی را در زمان های تصادفی ارسال می کنند.چنانچه مدل را اجرا کنید یکی از فرستنده ها در الگوی چرخشی حرکت می کند,دور از فرستنده دیگر شروع به حرکت کرده و نزدیک آن می شود و از آن دور می شود.در هنگام شروع موقعی که از گیرنده دور است پیام هایش درصورتی توسط گیرنده دریافت می شود که فرستنده دیگر پیامی را که باعث همپوشانی در یک زمان نشود را, ارسال نکند.چه پیام از فرستنده دیگر دریافت گردد چه برخوردی روی دهد بستگی به این دارد که فرستنده اولی چقدر دور است.اگر آن به اندازه کافی دور است پس توان تداخل[۶۱] برای جلوگیری از ارسال کافی نیست بنابراین پیام دریافت می شود.اگر آن نزدیک تر باشد پس توان تداخل به اندازه کافی برای اینکه پیام دریافت نشود,خواهد بود.

دو نمودار در شکل ۴۵ نشان داده شده اند.نمودار بالایی پیام هایی را نشان می دهد که ارسال شده اند(در رنگ های آبی و قرمز),یک نمایش ویژوالی از وقوع همپوشانی[۶۲] را نشان می دهد.مقدار در نمودار توان دریافت شده را نشان می دهد,برای فرستنده ای که ثابت است توان دریافت شده ثابت است.برای فرستنده متحرک توان دریافت شده شروع به کاهش می کند ,سپس شروع به افزایش می کند تا تقریباً معادل با توان فرستنده ثابت می شود بعد از آن دوباره سقوط می کند.نمودار پایینی نشان می دهد که آیا پیام از بین رفته است یا خیر؟در شکل در مجموع هفت پیام از بین رفته است.همه به جز یکی از پیام ها از فرستنده متحرک است(به رنگ قرمز نشان داده شده اند).

طول پیام در این مدل با یک فیلد اضافی که به مشخصات ارسال[۶۳] بوسیله کانال اضافه می شود نشان داده شده است.پارامترهای این کانال در پایین سمت راست شکل ۴۵ هستند.توجه کنید که پارامتر defaultproperties مقدار “{range=Infinity,power=Infinity,duration=1.0}” را دارد.فیلد duration در این رکورد,طول پیام را نشان می دهد.فرستنده ها به طور اختصاصی می توانند این فیلد را نادیده گرفته و بوسیله تنظیم پارامتر outsideTransmitProperties از پورتها شان یک duration دلخواه ایجاد کنند.

پیاده سازی گیرنده در شکل ۴۶ نشان داده شده است.در این مقدار سیگنال دریافت شده Boolean است,که اگر تولید کننده پیام فرستنده ثابت باشد ارزش false دارد و ارزشtrue خواهد داشت در صورتیکه صادر کننده فرستنده متحرک باشد.

اکتور GetProperties برای استخراج مشخصات دریافت شده استفاده می گردد,که شامل توان دریافت شده و طول پیام است.فیلد های power و duration از رکورد مشخصات بوسیله RecordDisassembler استخراج می شوند و به CollisionDetector تحویل می گردند,تا تصمیم گیری کنند که چه پیام هایی دریافت شده و چه پیام هایی از بین رفته است.بقیه مدل به ساخت نمودارها اختصاص می یابد.

اکتور CollisionDetectorنسبتاً پیچیده است.متن توضیحی آن در شکل ۴۷ نمایش داده شده است.

شکل(۴۵)مدل برخورد پیام ها که زمان گیر هستند

 

 

 

شکل(۴۶)پیاده سازی گیرنده در شکل قبل

 

شکل(۴۷)documentation برای اکتور collisiondetector

 

۶-۴)بهره آنتن دهی ارسال :

یک فرستنده برای یک کانال بی سیم یک آنتن جهت دار(directional antenna) دارد.این یک یک پیچیدگی معنی داری را در مدل کننده مطرح می کند.اگر چه هدایت کنندگی یک خاصیت محلی از فرستنده است,اثر آن به موقعیت گیرنده بستگی دارد.ما در بالا خاصیت ارسال را برای مدل سازی اتلاف انتشار (propagation losses) دیده ایم. مشخصات ارسال همچنین برای بهره آنتن دهی استفاده می شود,فرستنده با کانال یک property transformer را ثبت می کند که اکتوری است که مشخصات ارسال را برای هر ارسال بخصوص اصلاح خواهد کرد.قبل از اینکه کانال رویدادی را به گیرنده تحویل دهد, property transformer را اجرا می کندو به آن اجازه می دهد تا مشخصات ارسال را اصلاح کند.

یک مثال ساده از یک مدل که شامل یک آنتن ارسال جهتی است در شکل ۴۸ نشان داده شده است.این مدل در پنجره ابتدایی نرم افزار تحت عنوان “Transmit Antenna Gain” قابل مشاهده است.موقعی که این مدل را اجرا می کنید گیرنده در یک الگوی چرخشی اطراف فرستنده حرکت می کند و توان ارسال شده را اندازه گیری کرده و آن را ترسیم می کند.فرستنده یک آنتن با ترتیب مرحله به مرحله ای هشت عنصری با هدایت کننده[۶۴] دارد.

 

شکل(۴۸)مدل شامل یک آنتن ارسال جهتی.

 

طراحی فرستنده کاملاً پیچیده است(شکل ۴۹).آن با مثال نشان می دهدکه چه طور توان مدل سازی کامل Ptolemy II می تواند در Visualsense استفاده شود.در بالا سمت چپ شکل,اکتور transmitPropertyTransformer آنتن فرستنده را مدل می کند.رفتارش در ارسال بسیار ساده است:موقعی که با یک ورودی نشانه(token)ارائه می شود,آن به سادگی همان ورودی نشانه را,بدون تغییر,در پورت خروجی تولید می کند.به هر حال علاوه بر رفتار این ارسال ,این اکتور خودش را با کانال استفاده شده بوسیله پورتی که خروجی اش وصل به یک Property Transformer است,ثبت می کند.هنگامی که ارسال بی سیم از طریق پورت خروجی به بعضی گیرنده ها رخ می دهد,کانال بار دیگر transmitPropertyTransformer را برای هر گیرنده فراخوانی می کند,موقعیت گیرنده را فراهم می کند و مدل در بردارنده اکتور transmitPropertyTransformer را اجرا می کند.

مدل در بردارنده اکتور transmitPropertyTransformer در شکل ۴۹ نشان داده شده است.در بالا سمت راست شکل سطح بالای مدل نمایش داده شده است.آن نشان می دهد که موقعی که اجرا می شود(یکبار برای هر ارسال در پاسخ به کانال ),آن با سه مقدار senderlocation , receiverlocation و properties آماده می شود. مقدارproperties یک رکوردی است که در این مورد شامل یک فیلد power که بوسیله مدل برای محاسبه بهره آنتن دهی در هدایت از فرستنده به گیرنده اصلاح شده است.این مدل زاویه ارسال را محاسبه می کند,بهره آنتن را در آن جهت محاسبه می کند و سپس فیلد power از رکورد وproperties را مقیاس بندی می کند.توجه کنید این مدل یک SDFDirector علاوه بر DEDirector و WirelessDirector معمول که بیشتر به طور عمومی در Visualsense استفاده می شد را نیز دارد.این بخاطر است که محاسبه بهره آنتن دهی اساساً یک تابع پردازش سیگنال است.

بهره آنتن دهی با استفاده از مدل نشان داده شده در میان شکل ۴۹ محاسبه می شود.این مدل دو اکتور IterativeOverArray(به نام های “ArrayElement” و”Steering”)را برای مدل سازی عناصر آرایه و کاربرد بردار فرمان یا هدایت کننده استفاده می کند.این اکتور ها,اکتور هایی هستند که مدل های درون خود را یکبار برای هر عنصر آرایه ورودی اجرا می کنند.این اکتور ها مثال هایی از مؤلفه هایhigher-order هستند,و در این مورد قادر به تعریف یک مدل در جایی که تعداد عناصر آنتن بوسیله یک پارامتر بیشتر نسبت به سخت افزار داخل دیاگرام داده می شوند.همان مکانیسم برای مدل سازی بهره آنتن در گیرنده استفاده شود.

 

 

شکل (۴۹)طراحی گیرنده برای مدل شکل قبل.

 

اگر چندین property transformer که قابل اجرا بر روی انتقال بخصوص هستند وجود دارد,سپس آنها در یک دسته اجرا می شوند.بنابراین عملیات که آنها روی مشخصات انجام می دهند باید مبادله پذیر باشد .به طور نمونه,آنها یک فیلد را انتخاب می کنند و آن را بوسیله یک ثابت افزایش می دهند.

ساختار نرم افزار:

کلاس های کلیدی در Ptolemy II در شکل ۵۰ نشان داده شده اند.مؤلفه های قابل اجرا واسط اکتور را پیاده سازی می کنند, می توانند اتمیک(atomic)یا مرکب(composite)باشند.اکتور های اتمیک در کد جاوا تعریف می شوند,در حالی که اکتور های مرکب از اکتور ها و رابط ها(اتصالات)تشکیل و اسمبل می شوند.

 

شکل(۵۰)دیاگرام کلاس UML نشان دهنده کلاس های کلیدی در Ptolemy II

 

هر اکتور ,خواه اتمیک و یا مرکب,شامل پورت هایی است که در یک اکتور مرکب از طریق رابط ها(relation)پیوند می یابند.اکتورها,پورت ها و رابط ها همگی می توانند خاصیت هایی را دارا باشند(parameter).یکی از خصلت ها یک director است.director یک نقش کلیدی در Ptolemy II بازی می کند.

آن معنای یک مرکب را تعریف می کند و مدل همزمانی و معانی انتقال را در Visualsense بیان می کند.director شبیه ساز را پیاده سازی می کند.

توسعه ای که Visualsense پیاده می کند در شکل ۵۱ نشان داده شده است.یک گره در شبکه بی سیم,اکتوری است که می تواند یک زیر کلاسی از هر یک از TypedAtomicActor یا TypedCompositeActor باشد.تفاوت میان اینها است که برای TypedAtomicActor ,رفتار در کد جاوا تعریف می شود در حالی که برای TypedCompositeActor رفتار در مدل های Ptolemy II تعریف می گردد که خود یک ترکیبی از اکتورها است.

اکتور ها که ارسال را به صورت بی سیم انجام می دهند,پورت هایی دارند که مثال هایی از WirelessIOPort هستند.همچنانکه با هر پورت Ptolemy II ,اکتور داده را بوسیله فراخوانی متد send یا broadcast روی پورت می فرستد.

در مورد WirelessIOPort ,send و broadcast نمی توانند پورت های مقصد را با استفاده از اتصالات روش بلوک دیاگرام تصمیم بگیرند,زیرا چنین اتصالاتی وجود ندارد.در عوض آنها یک نمونه از کانال بی سیم را بوسیله نام تعیین می کنند و به آن نمونه محول می کنند تا مقصد (مقصد های)پیام ها را تصمیم گیری کند.نمونه بوسیله تنظیم پارامتر outsideChannel از پورت معادل با نام کانال بی سیم مشخص می شود(همه اکتور ها در یک سطح معین از سلسله مراتب نامهای یکسانی دارند,یک مشخصه بوسیله کلاس پایه تهیه می شود).

واسط WirelessChannel و کلاس پایه AtomicWirelessChannel که در شکل …. نمایش داده شده است,برای توسعه پذیری طراحی می شوند.آنها با WirelessIOPort با هم کار می کنند,که متد عمومی transmit را برای ارسال داده ها استفاده می کند,که متد سه آرگومان می گیرد ,یک token برای ارسال,یک source port,و یک properties(توان ارسال برای مثال).

AtomicWirelessChannel یک دنباله ای از متد های محافظت شده(protected)دارد,که در UML دیاگرام بوسیله علامت راهنمای # نشان داده می شود.در روش کد گذاری Ptolemy II,متد های محافظت شده نام هایی دارند که با علامت زیر خط(_)شروع می شوند.

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

رفتار پیش فرض AtomicWirelessChannel بوسیله شبه کد زیر نمایش داده می شود:

Public void transmit(token,sender,properties) {

   Foreach receiver in range{

       _transmiTo(token,sender,receiver,properties)

   }

}

برای تصمیم گیری اینکه گیرنده در یک محدوده هستند,آن متد محافظت شده _receiverTnRange() را فراخوانی می کند که بوسیله پیش فرض همه گیرنده ها با همه پورت هایی که ارجاع می دهند به همان نام کانال,نگهداری می شود,همچنانکه بوسیله فرستنده مشخص شد.متد _transmitTo() پیش فرض متد عمومی _transformProperties() برای اصلاح آرگومان Properties استفاده می شود و سپس token و properties اصلاح شده را در داخل گیرنده قرار می دهند.متد transformProperties() هر مبدل مشخصه[۶۵] را که استفاده از متد registerPropertyTransformer() را ثبت کرده است به کار می برد,ولی کار اضافه ای انجام نمی دهد.بنابراین اگر مبدل مشخصه ثبت نشده است پیش فرض AtomicWirelessChannel محدودیت های برد را ندارد و هیچ افت انتقالی را معرفی نمی کند.ما حالا می توانیم از طریق یک سری از مثال ها نشان دهیم که چه طور زیر کلاس ساخت مدل های مفصل تر(و مفید)را آسان می سازد.

 

شکل (۵۱)دیاگرام UML نشان دهنده کلاس های کلیدی برای مدل سازی شبکه حسگر بی سیم

 

 

 

 

 

پیاده سازی در Ptolemy II:

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

فهمیدن تعامل (واکنش) در شبکه های حسگر

مدیریت داده از طریق ارتباط بی سیم وکانال بی سیم وپیکربندی پورت ها

نقایص شبکه های حسگر

تاثیر از دست رفتن توان , شدت صوت , تاثیر بیرونی , منابع فشرده شده روی گره های حسگر درمحیط های چند گانه

توانایی های توسعه یافته شبکه های حسگر

علاوه بر پردازش و حس کردن خصوصیاتی نظیر لرزش , صوت , مادون قرمز, حرکت و افزودن پردازش داده همراه با الگوریتم های ردگیری حرکت وصدا

به مجرد کامل کردن این سه کار مهم مدل کردن یک شیه سازی شبکه حسگر آغاز می شود.

 

طراحی ومدل کردن ناهمگن پتولومی

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

 

 

 

 

مدل شبکه حسگر

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

 

چند مثال و کاربرد:

۱)غرق سازی[۶۶]:

ابتدا,یک ارزیابی از یک الگوریتم برای پرسش های رادیویی(broadcasting query)به طور مؤثر در شبکه حسگر شرح می شود.برای دستیابی به همه گره ها ,موقعی که یک گره حسگر یک پیام رادیویی را دریافت می کند,آن ممکن است پیام را تکرار کند.مقصود کاهش تعداد چنین تکرار های مورد نیاز برای نفوذ کردن در شبکه است.یک تصویر از یکی از آزمایش های اجرا شده در شکل۵۲ نشان داده شده است.در این تصویر ,هر دایره یک گره حسگر را نمایش می دهد.در مرکز دایره یک آیکون برای نمایش یک آنتن است.این موقعیت فرستنده و گیرنده را برای گره نمایش می دهد.گره های حسگر به طور تصادفی پخش می شوند(یک اکتور در کتابخانه برای درک پخش تصادفی فراهم شده است).

اجرای این مدل یک تعداد ثابتی از پرسش[۶۷] ها را انتشار می دهد,که به عنوان یک پارامتر مدل,از طریق شبکه حسگر مشخص شده است.در این آزمایش گره پایه با دایره رنگ سبز نیمه شفاف در شکل ۵۲ نمایش داده شده است که یک پرسش را به طور متناوب منتشر می کند.در ابتدا همه گره ها این پرسش را به محض شنیدن آن تکرار می کنند.به هر حال همچنانکه اجرا پیش می رود,گره ها توپولوژی شبکه اطراف آنها را یاد می گیرند و مبتنی بر الگوریتم توزیع شده ی شرح داده شده در ,تصمیم به ادامه تکرار یا توقف آن می گیرند.گره هایی که با آیکون قرمز رنگ در شکل ۵۲ ,گره هایی هستند که تکرار می کنند در حالی که گره ها با آیکون آبی تکرار را انجام نمی دهند,بعد از آن الگوریتم همگرا شده است.

در این آزمایش,گره های حسگر ارسال را از طریق یک کانال رادیویی بدون تأخیر زمانی و بدون هیچ نویز و اتلافی انجام می دهند.برد انتشار از گره حسگر یک پارامتری از گره است و با آیکون دایره ای نشان داده می شود.در شکل۵۲ برای همه گره ها یکسان است.به هرحال آن می تواند به آسانی تغییر داده شود.

 

شکل(۵۲)تصویری از مثال غرق سازی

 

۲)مثلث بندی [۶۸]:

در این مثال از کاربرد,یک مدل از منبع توان(در این مورد باتری ها)گره های حسگر با یک مدل از یک سناریویی که گره های صوتی با هم برای تصمیم گیری موقعیت منبع صوت بوسیله triangulationهمکاری می کنند,تزویج می شوند.(شکل ۵۳)

در این مثال یک کانال صوتی سیگنال های یک منبع متحرک را حمل می کند و گره های حسگر آن را از طریق یک کانال رادیویی انتقال می دهند.کانال صوتی تأخیر انتشار را در نظر می گیرد در حالی که کانال رادیویی به عنوان لحظه ای مدل می شود,شبیه به مدل مثال غرق سازی که در بالا شرح داده شد.همانند آن مثال ,آیکون های دایره ای گره ها برد ارسال خود را نمایش می دهند.

کانال صوتی سیگنال ها را از یک منبع صوت متحرک به گره های حسگر حمل می کنند.موقعی که یک گره حسگر یک سیگنال صوتی را کشف می کند,آن مشاهده(زمان کشف و موقعیت گره حسگر)را از طریق کانال رادیویی منتشر می کند.یک اکتور ردیاب صوت مشاهدات را جمع آوری کره زمان و موقعیت انتشار صوت از منبع متحرک را محاسبه می کند

شکل(۵۳)تصویر مثال مثلث بندی

 

۳)نظارت بر ترافیک[۶۹]:

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

یک مدل طبیعی از چنین شبکه های حسگر پویایی باید از تغییرات در شبکه پشتیبانی کند نه فقط در توپولوژی اتصال داخلی,بلکه در مجموعه مؤلفه ها ی موجود در شبکه بطوریکه قبلاً مشاهده شد,Ptolemy II برای تغییر در ساختار مدل پشتیبانی دارد.ما با مثال نشان می دهیم که چه طور این مدل سازی شبکه حسگر با کاربرد نظارت بر ترافیک به کار گرفته شود.

حسگر ها در امتداد جاده برای جمع آوری اطلاعات که به پایگاه اصلی برای تحلیل بیشتر فرستاده می شود,توزیع می شوند.برای مدل سازی و شبیه سازی چنین شبکه ای ما ابتدا یک مدل برای میدان حسگر می سازیم,که شامل یک مؤلفه برای هر گره حسگر و کانال ها(یک کانال بی سیم برای انتقال میان حسگر ها,و یک کانال صوتی برای انتشار سیگنال از وسایل عبوری در حسگرها) .

برای اینکه رفتار شبکه را شبیه سازی کنیم علاوه براین به یک مدل محرک برای تولید ورودی ترافیک به میدان حسگر نیاز داریم.سؤال این است که چه نوع از ورودی باید برای مدل محرک در میدان حسگر فراهم گردد؟به طور مشخص آن یک ماشین است که در امتداد جاده در یک کران و حاشیه وارد می شود.در این جهت ,محرک واقعاً یک مدل ماشین(اتومبیل)اضافه شده به میدان حسگر است.از آنجایی که ماشین ها می توانند در هر زمان وارد یک منطقه شده و پس از مدتی آن را ترک کنند,میسر نخواهد بود تا آنها به طور ایستا در میدان حسگر مدل شوند.برای نگهداری ساختار دینامیک به علت ورود و خروج ماشین ها ,ما یک اکتور سطح بالا[۷۰] را استفاده می کنیم(یکی که به عنوان مدل می گیرد ورودی دیگر را) .یک چنین اکتوری مدل دیگری که را که محاسبه اش را معین می کند,در بر می گیرد و در طول اجرا مدل نگهداشته شده[۷۱] می تواند به طور پویا تغییر داده شود.اکتور سطح بالا دو ورودی دارد,با اولین ورودی داده را دریافت می کند که مدل نگهداشته شده باید پردازش شود و ورودی دوم تغییرات مدل را در مدل نگهداشته جاری دریافت می کند.تغییرات مدل می تواند مؤلفه های جدیدی از قبیل اکتورهایی که ماشین ها را مدل می کنند اضافه کند.مؤلفه های موجود و اتصالات را حذف یا اضافه کنند.

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

 

۴)گمشده جنگی در منطقه دشمن و تعقیب کننده[۷۲] :

در این مثال یک گره بی سیم گمشده جنگی[۷۳] را در میدان حسگر ها شناسایی می کند(شکل۵۴),حسگر ها در میدان با یکدیگر ارتباط برقرار می کنند تا یک درخت پوشا[۷۴] از گره ریشه(جایی که گمشده جنگی به آن نزدیک می شود)به گره هایی که یک جهش[۷۵] از گره ریشه و مانند آن هستند,بسازند.موقعی که حسگر گمشده جنگی را شناسایی می کند,خودش را به عنوان ریشه قرار می دهد و یک پیامی را به گره های همسایه اش پخش می کند.

پیام شامل زمانی است که گمشده جنگی شناسایی می شود,موقعیت و عمق که برای گره ریشه از حسگر ها صفر است.آن کنترل می کند که آیا گره ریشه تغییر داده شده از آخرین بار(بوسیله کنترل زمان شناسایی آن)یا که یک مسیر کوتاه تر به گره ریشه وجود دارد.اگر چنین است,آن زمان شناسایی شده را ثبت می کند و اطلاعات گره پدرش[۷۶] را به روز رسانی می کند(موقعیت و عمق در درخت)و یک پیام را که شامل زمان شناسایی ,موقعیت و عمق در درخت است, به گره های همسایه آن ارسال می کند.با انجام این کار در شبکه حسگر یک درخت پوشا به طور توزیع شده ساخته می شود و حسگر ها بر طبق فاصله ای که از گره ریشه دارند,اندیس گذاری می شوند.با حرکت گمشده جنگی ان ممکن است بوسیله حسگر های دیگر شناسایی شود و درخت به طور پویا تغییر کند.

 

 

شکل(۵۴)تصویری که میدان حسگر ها را به همراه کانال ها و… نمایش می دهد

 

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

موقعی که یک گره حسگر نشانه ای از پورت سیگنال(که برای دریافت سیگنال از تعقیب کننده یا گمشده جنگی استفاده می شود)را دریافت می کند,آن تشخیص می دهد که چه کسی سیگنال را فرستاده(با بررسی ابتدای سیگنال[۷۷]).اگر آن از گمشده جنگی ارسال شده,گره خودش را به عنوان گره ریشه بعدی می نشاند و یک پیام را برای به روز رسانی درخت انتشار می دهد وگرنه آن یک پیامی به تعقیب کننده ارسال می کند تا آن موقعیت گره منشأ یا گره پدر را تشخیص دهد و تعقیب کننده با این اطلاعات به سمت گمشده جنگی حرکت خواهد کرد.

موقعی که آن نشانه را از پورت ورودی که برای دریافت پیام از دیگر حسگر ها استفاده می شود,دریافت می کند ,بررسی می کند که آیا گره ریشه[۷۸] تغییر کرده یا یک مسیرکوتاه تر وجود دارد.اگر چنین است آن به روز رسانی را انجام می دهد و یک پیام را انتشار می دهد,در غیر این صورت پیام را مصرف می کند.

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

 

 

۵)جهان کوچک[۷۹]:

این مثال یک شبکه حسگری را نشان می دهد که هر گره مجدداً اولین پیامی را که دریافت می کند انتشار می دهد(شکل۵۵).یک مؤلفه به نام آغازگر[۸۰] یک پیام را منتشر می کند,و مدل رد تعداد گره هایی را که پیام را بعد از یک جهش,بعد از دو جهش و همینطور الی آخر دریافت می کنند,نگهداری می کند و یک نمودار میله ای رسم می کند.

 

شکل(۵۵)تصویری از مدل small world

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

مراجع:

[۴] C. T. Ee, N. V. Krishnan and S. Kohli, “Efficient Broadcasts

in Sensor Networks,” Unpublished Class Project Report, UC

Berkeley, Berkeley, CA, May 12, 2003.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[۱] Wireless Sensor Actor Network (WSAN)

[۲] Embeded System

[۳] Sink

[۴] Task Manager Node

[۵] Monitoring

[۶] ‍Cluster_Head

[۷] Gateway

[۸] Broadcast

[۹] Data Centric

[۱۰] ID (Identification code)

[۱۱] Sensor Query and Tasking Language (SQTL)

[۱۲] Power-Aware

[۱۳] Location Aware

[۱۴] Application Aware

[۱۵] Power Efficient

[۱۶] Router

[۱۷] Sleep

[۱۸] Real-time

[۱۹] Coordination

[۲۰] MAC (Medium Access Control)

[۲۱] Security

[۲۲] Interferences

[۲۳] Overhead

[۲۴] Flooding Attack

[۲۵] Sleep

[۲۶] Self Optimizing

[۲۷] Self Organizing

[۲۸] Self Healing

[۲۹] MICA MOTE

[۳۰] CPU

[۳۱] ۸-bit 4 MHz Atmel ATmega 128

[۳۲] Smart Dust

[۳۳] Pitster

[۳۴] Kahn

[۳۵] power consumption

[۳۶] passively

[۳۷] probe

[۳۸] active

[۳۹] Sensor network

[۴۰] Actor-oriented

[۴۱] Wired

[۴۲] Discrete event

[۴۳] Multithreaded

[۴۴] Visual Editor

[۴۵] Wireless Sensor Network

[۴۶] Hub

[۴۷] Triangulate

[۴۸] Director

[۴۹] Triangulator

[۵۰] Triangulated

[۵۱] Infinity

[۵۲] Clock

[۵۳] stop time

[۵۴] Drag

[۵۵] Source code

[۵۶] Double

[۵۷] Composite

[۵۸] collisions

[۵۹] Share

[۶۰] message duration

[۶۱] interfering power

[۶۲] Overlap

[۶۳] transmit properties

[۶۴] Steering

[۶۵] property transformer

[۶۶] Flooding

[۶۷] Query

[۶۸] Triangulation

[۶۹] Trafic Monitoring

[۷۰] Higher-Order

[۷۱] contained model

[۷۲] Evader & pursuer

[۷۳] Evader

[۷۴] Spanning Tree

[۷۵] Hop

[۷۶] Parent

[۷۷] Signal header

[۷۸] root node

[۷۹] Small world

[۸۰] Initiator