PDA

مشاهده نسخه کامل : چگونه روبات را از طریق اینترنت کنترل کنیم؟



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 که برخی از امکانات این کار را دارد، معمولا" در این مورد دچار خطا می شود.
برای رفع این مشکل می توانیم درخواست های دریافتی از وب سایت را در یک فایل ذخیره کنیم و سپس فایل را در اختیار یک برنامه ی تحت سیستم عامل قرار دهیم که به راحتی می تواند با منابع سخت افزاری تعامل داشته باشد و درخواست ها رو به سوی روبات بفرستد. توجه کنیم که این مراحل باید روی رایانه ای صورت پذیرد که حاوی سایت کنترل روبات بوده و به روبات نیز متصل باشد.

ravegoat
04-02-11, 13:13
اولین نکته ای که باید به آن توجه کنیم تفاوت بین IP های Private و Public است. با اتصال یک رایانه به اینترنت به طور پيش فرض رایانه دارای Private IP خواهد شد که تنها برای یک شبکه ی داخلی معتبر است. به عبارت ساده تر تنها با داشتن Private IP یک رایانه، الزما" نمی توان به آن وصل شد. برای رفع این مشکل می توانید به مقاله زیر مراجعه کنید:

Only the registered members can see the link

در مرحله بعد باید اقدام به طراحی وب سایت نماییم. طراحی وب سایت باید با یک زبان برنامه نویسی تحت وب صورت گیرد و نرم افزاری چون Frontpage توانایی برآورده کردن نیاز ما را ندارد. زبان های معروف برنامه نویسی تحت وب عبارت اند از: PHP، ASP.Net، Java و البته در این زمینه می توان از Javascript هم استفاده کرد.

پس از طراحی وب سایت برای نمایش آن باید از وب سرور استفاده کنیم (Web Server). وب سرور نرم افزاری است که روی رایانه ی حاوی محتویات وب اجرا می شود و این محتویات را بر اساس ضوابطی برای کاربران اینترنتی به نمایش می گذارد. زمانی که ما نشانی یک تارنما را در مرورگر وب خود وارد می کنیم، مرورگر درخواستی را به سوی وب سرور آن تارنما ارسال می کند و وب سرور محتویات را بر مبنای محتویات درخواستی به سمت مرورگر می فرستد و در نهایت ما صفحات وب را روی مرورگر خود مشاهده می کنیم. راه اندازی یک وب سرور آن چنان دشوار نیست. تنها باید آن را نصب کنیم؛ فعال کنیم و مسیری که محتویات سایت کنترل روبات در آن ذخیره شده است را به وب سرور معرفی کنیم. آن گاه هر شخصی که آدرس IP رایانه ی ما را در مرورگر خود وارد کند، محتویات سایت را مشاهده خواهد کرد. Apache نمونه ای از وب سرور برای لینوکس و IIS نمونه ای از وب سرور برای ویندوز است.

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