ravegoat
04-02-11, 13:11
بیاییم در ابتدا نگاهی کلی به ساختار اینترنت بیاندازیم. آن چه اینترنت را تشکیل می دهد تنها چند رایانه ی قدرتمند نیست بلکه اینترنت را تمام تجهیزات متصل به آن شکل می دهند. در نتیجه زمانی که ما به اینترنت وصل می شویم جزئی از ساختار آن به حساب می آییم و می توانیم با سایر منابع موجود در اینترنت ارتباط برقرار کنیم. هنگامی که یک سخت افزار به اینترنت وصل می شود، سرویس دهنده یک شناسه به آن اختصاص می دهد که IP نام دارد. IP نقشی مانند کدپستی را دارد و به وسیله ی آن، مجموعه ای از سخت افزار ها از سخت افزار دیگر های در اینترنت متمایز می شوند.
آن چه تا کنون دریافتیم این است که دو رایانه ی موجود در اینترنت می توانند با هم تعامل داشته باشند. حال بیاییم یکی از این دو را از راه هایی (که قبلا" به آن ها اشاره شده بود.) به روبات های مورد نظر خود وصل کنیم. آن گاه آن رایانه ی متصل می تواند نقش یک واسطه را ایفا کند و در خواست های دریافتی از اینترنت را به سمت روبات هدایت کند.
دو نوع رابط می توان برای کنترل روبات از طریق اینترنت تعریف کرد:
1-رابط تحت سیستم عامل: این رابط نرم افزاری است که تحت سیستم عامل اجرا می شود؛ در خواست ها را از کاربر خود دریافت کرده؛ آن ها را از راه اینترنت به سوی مقصد هدایت می کند و در آخر پاسخ را دریافت كرده و برای کاربر به نمایش می گذارد. نرم افزاری چون Yahoo! Messenger چنین رابطی است.
2-رابط تحت وب: این رابط نیز دقیقا" همان عمل رابط اول را انجام می دهد با این تفاوت که تحت بستر وب اجرا می شود. برای کار با چنین رابطی باید از مرورگر وب استفاده کنیم. تمامی تارنما های اینترنتی در واقع جز این نوع رابط محسوب می شوند.
ما برای کنترل روبات خود نیز باید چنین رابط هايی را تعریف کنیم. در صورت در نظر گرفتن رابط نوع اول، باید دو برنامه ی کاربردی تحت سیستم عامل بنویسیم که یکی نقش سرویس دهنده (Server) و دیگری نقش سرویس گیرنده (Client) را دارد. ما دستورات خود را با client به سوی server روانه می کنیم و server با دریافت درخواست، آن را برای روبات می فرستد. مزیت بزرگ این روش انعطاف پذیری بالاست و ما می توانیم ارتباط با روبات را به بهترین وجه مدیریت نماییم. شاید بزرگ ترین ایراد این روش این باشد که برای کنترل روبات همواره به نرم افزار client نیاز داريم و بدون client قادر نخواهیم بود به روبات دسترسی پیدا کنیم. به علاوه رابط client عموما" مستقل از نوع سیستم عامل نیست. به عبارتی دیگر هر کدام از client های مربوط به ویندوز موبایل، جاوا موبایل، ویندوز و یا لینوکس باید به طور جداگانه برنامه نویسی شوند.
دررابط نوع دوم ما باید چیزی چون یک وب سایت برای هدایت روبات طراحی نماییم. این سایت باید روی رایانه ی متصل به روبات قرار گیرد. در این صورت برای کنترل روبات وارد سایت طراحی شده می شویم و از طریق سایت دستورات به روبات فرستاده می شوند. ویژگی جالب این روش برخلاف رابط نوع اول، مستقل بودن آن است. ما در هر کجا که باشیم و چه با یک لپ تاپ و چه با یک موبایل، می توانيم وارد سایت کنترل روبات خود شویم و کنترل روبات را به دست گیریم. عیب این روش مربوط به محدودیت های برنامه نویسی وب است. برای واضح تر شدن این محدودیت بهتر است به مثال زیر توجه کنیم:
یک روبات را از طریق اتصال Sim20 به رایانه ای وصل کرده ایم. وب سایت کنترل روبات نیز روی این رایانه قرار داده شده است. براساس آنچه که در نوشتار های قبلی بیان شد، ارتباطات تحت Sim20 با فرمان AT کنترل می شوند. یک فرمان AT را به راحتی می توانیم از طریق برنامه نویسی تحت وب تولید کنیم چون این فرمان تنها یک متن ساده است. اما چگونه این فرمان را به سوی ماژول sim20 ارسال کنیم؟ اکثر زبان های برنامه نویسی تحت وب در این مسئله دچار مشکل می شوند. حتی زبانی چون ASP.Net که برخی از امکانات این کار را دارد، معمولا" در این مورد دچار خطا می شود.
برای رفع این مشکل می توانیم درخواست های دریافتی از وب سایت را در یک فایل ذخیره کنیم و سپس فایل را در اختیار یک برنامه ی تحت سیستم عامل قرار دهیم که به راحتی می تواند با منابع سخت افزاری تعامل داشته باشد و درخواست ها رو به سوی روبات بفرستد. توجه کنیم که این مراحل باید روی رایانه ای صورت پذیرد که حاوی سایت کنترل روبات بوده و به روبات نیز متصل باشد.
آن چه تا کنون دریافتیم این است که دو رایانه ی موجود در اینترنت می توانند با هم تعامل داشته باشند. حال بیاییم یکی از این دو را از راه هایی (که قبلا" به آن ها اشاره شده بود.) به روبات های مورد نظر خود وصل کنیم. آن گاه آن رایانه ی متصل می تواند نقش یک واسطه را ایفا کند و در خواست های دریافتی از اینترنت را به سمت روبات هدایت کند.
دو نوع رابط می توان برای کنترل روبات از طریق اینترنت تعریف کرد:
1-رابط تحت سیستم عامل: این رابط نرم افزاری است که تحت سیستم عامل اجرا می شود؛ در خواست ها را از کاربر خود دریافت کرده؛ آن ها را از راه اینترنت به سوی مقصد هدایت می کند و در آخر پاسخ را دریافت كرده و برای کاربر به نمایش می گذارد. نرم افزاری چون Yahoo! Messenger چنین رابطی است.
2-رابط تحت وب: این رابط نیز دقیقا" همان عمل رابط اول را انجام می دهد با این تفاوت که تحت بستر وب اجرا می شود. برای کار با چنین رابطی باید از مرورگر وب استفاده کنیم. تمامی تارنما های اینترنتی در واقع جز این نوع رابط محسوب می شوند.
ما برای کنترل روبات خود نیز باید چنین رابط هايی را تعریف کنیم. در صورت در نظر گرفتن رابط نوع اول، باید دو برنامه ی کاربردی تحت سیستم عامل بنویسیم که یکی نقش سرویس دهنده (Server) و دیگری نقش سرویس گیرنده (Client) را دارد. ما دستورات خود را با client به سوی server روانه می کنیم و server با دریافت درخواست، آن را برای روبات می فرستد. مزیت بزرگ این روش انعطاف پذیری بالاست و ما می توانیم ارتباط با روبات را به بهترین وجه مدیریت نماییم. شاید بزرگ ترین ایراد این روش این باشد که برای کنترل روبات همواره به نرم افزار client نیاز داريم و بدون client قادر نخواهیم بود به روبات دسترسی پیدا کنیم. به علاوه رابط client عموما" مستقل از نوع سیستم عامل نیست. به عبارتی دیگر هر کدام از client های مربوط به ویندوز موبایل، جاوا موبایل، ویندوز و یا لینوکس باید به طور جداگانه برنامه نویسی شوند.
دررابط نوع دوم ما باید چیزی چون یک وب سایت برای هدایت روبات طراحی نماییم. این سایت باید روی رایانه ی متصل به روبات قرار گیرد. در این صورت برای کنترل روبات وارد سایت طراحی شده می شویم و از طریق سایت دستورات به روبات فرستاده می شوند. ویژگی جالب این روش برخلاف رابط نوع اول، مستقل بودن آن است. ما در هر کجا که باشیم و چه با یک لپ تاپ و چه با یک موبایل، می توانيم وارد سایت کنترل روبات خود شویم و کنترل روبات را به دست گیریم. عیب این روش مربوط به محدودیت های برنامه نویسی وب است. برای واضح تر شدن این محدودیت بهتر است به مثال زیر توجه کنیم:
یک روبات را از طریق اتصال Sim20 به رایانه ای وصل کرده ایم. وب سایت کنترل روبات نیز روی این رایانه قرار داده شده است. براساس آنچه که در نوشتار های قبلی بیان شد، ارتباطات تحت Sim20 با فرمان AT کنترل می شوند. یک فرمان AT را به راحتی می توانیم از طریق برنامه نویسی تحت وب تولید کنیم چون این فرمان تنها یک متن ساده است. اما چگونه این فرمان را به سوی ماژول sim20 ارسال کنیم؟ اکثر زبان های برنامه نویسی تحت وب در این مسئله دچار مشکل می شوند. حتی زبانی چون ASP.Net که برخی از امکانات این کار را دارد، معمولا" در این مورد دچار خطا می شود.
برای رفع این مشکل می توانیم درخواست های دریافتی از وب سایت را در یک فایل ذخیره کنیم و سپس فایل را در اختیار یک برنامه ی تحت سیستم عامل قرار دهیم که به راحتی می تواند با منابع سخت افزاری تعامل داشته باشد و درخواست ها رو به سوی روبات بفرستد. توجه کنیم که این مراحل باید روی رایانه ای صورت پذیرد که حاوی سایت کنترل روبات بوده و به روبات نیز متصل باشد.