نمایهسازی توزیعشده وب با استفاده از خزنده مهاجر[۱]
به علت سرعت بسیار زیاد در افزایش منابع وب و بسامد بالای تغییرات، نگهداری یک نمایه روزآمد برای مقاصد جستجوگری (موتورهای کاوش) به یک چالش تبدیل میشود. روشهای سنتی خزندهها، دیگر این قابلیت را ندارند که با روزآمد شدن و رشد دائمی وب، همگام شوند. با درك این مسئله، در این مقاله ما یك روش جایگزین، یعنی روش خزنده توزیعشده با استفاده از عاملهای سیار[۲] را پیشنهاد میکنیم. هدف ما ارائه یك شیوه خزش مقیاسپذیراست که میزان بهرهگیری از شبکه را کم کند، با تغییرات منابع هماهنگ باشد، درك زمانی را به کار گیرد، و به سهولت قابل ارتقا باشد.
۱. مقدمه
در نتیجه ماهیت پویا و رشدیابنده وب، نمایهسازی آن به یك چالش تبدیل شده است. منابع وبی که به صورت مستقیم در دسترس هستند (و از آن با عنوان وب سطحی[۳] یاد شده)، بیشتر از ۵/۲ میلیارد مدرک است، در حالی که منابع وب غیرمستقیم[۴] (اسنادی كه به نحو پویا تولید میشوند) در حدود سه برابر این مقدار تخمین زده شده است (Lyman, et al., ۲۰۰۳). بعلاوه، حدود ۴۰ درصد از محتویات وب هر ماه دچار تغییر میشود (Kahle, ۱۹۹۶)، در حالی که هیچ موتور کاوشی تاکنون نتوانسته بیش از ۱۶ درصد از این مقدار تخمین زده شده وب را زیرپوشش قرار دهد (Lawrence, & Giles, ۱۹۹۹).
خزیدن در وب (یا خزیدن سنتی) از سال ۱۹۹۳، اقدام غالب در نمایهسازی وب توسط موتورهای کاوش معروف و سازمانهای تحقیقاتی بوده است، اما با وجود منابع وسیع رایانشی و شبکهای که به درون وب ریخته میشوند، خزیدن سنتی نمیتواند به طور مؤثر با پویایی وب، همگام گردد. به بیان دقیقتر، مدل خزیدن سنتی به دلایل زیر موفق نیست:
۱. پردازش دادههای حاصل از خزیدن، باعث تنگنای شدید پردازش در سایت موتور کاوش میشود.
۲. تلاش برای ضبط كردن هزاران سند در ثانیه باعث ایجاد تنگنا در شبکه[۵] میشود.
۳. اسناد معمولاً بدون فشردهسازی، توسط خزنده ضبط میشوند و این امر باعث بروز تنگنا در شبکه میشود. عموماً فشردهسازی چندان آسان نمیباشد، زیرا مستقل از کار خزیدن است و نمیتوان الزاماً به وسیله خزنده به آن اقدام كرد. به علاوه، خزندهها همه محتویات یک سند- شامل اطلاعات غیرمفیدی از قبیل توضیحات کد و برنامه- را که بهندرت در نمایهسازی اسناد، لازم میآیند نیز ضبط میكنند.
به دلیل نبود روش خزیدن مقیاسپذیر، در چند سال اخیر تحقیقات مهمی انجام شده است. خزیدن متمرکز[۶] (Chakrabarti et al. ,۱۹۹۹) به عنوان یک روش جایگزین پیشنهاد شد، اما هیچ نوآوری در معماری را موجب نشد، زیرا بر اساس همان کارکردهای تمركز گرایانه خزیدن سنتی بنا شده بود. بهعنوان نخستین تلاش برای ایجاد ماهیت تمركزگرایانه خزیدن سنتی، چند روش توزیعشده پیشنهاد شدهاند (مانند «هاروِِِِِِِِِِِِسِت» (Bowman, et al., ۱۹۹۴) و «گراب» (Kordless, Lajesus, & Ozra, ۲۰۰۱).
در این مقاله، ما «یوسی میكرا»[۷] را معرفی میکنیم؛ سیستم خزندهای که از مفاهیمی همانند آنچه در خزیدن موبایل توزیعشده (كه در (Fiedler & Hammer, ۱۹۹۹, ۲۰۰۰) معرفی شده) یافت میشود استفاده میكند. «یوسی میكرا» این مفاهیم را توسعه میدهد و مفاهیم جدیدی را معرفی میكند تا مدل مؤثرتری برای خزیدن توزیعشده در وب بسازد که قادر باشد بیدرنگ خود را با تغییرات منابع وب، هماهنگ کند.
«یوسیمیكرا» با بهكارگیری فناوری «عاملهای سیار» یك راهبرد خزیدن کاملاً توزیعشده را پیشنهاد میكند. اهداف این پیشنهاد عبارتاند از:
الف) به حداقل رساندن مقدار به کارگیری شبکه؛
ب) هماهنگشدن با تغییرات منابع، با اجرای نظارت درون- سایتی؛
ج) اجتناب از اضافهبار غیرضروری سرورهای وب با بهکارگیری تحقق همزمـانی[۸]؛
د) قابلیت ارتقا در زمان اجرا.
۲. سیستم خزنده «یوسی میكرا»
نیروی محرک «یوسیمیكرا» استفاده از عاملهای سیاری است که از موتور کاوش به سرورهای وب مهاجرت میکنند و برای خزش، پردازش، و نظارت بر منابع وب برای روزآمدسازی، در آنجا باقی میمانند. از آنجا که«یوسیمیكرا» در سرور وبی که باید مورد خزش قرار بگیرد نیازمند به اجرا درآمدن نوع خاصی از كارپایه عاملهای سیار میباشد، در حال حاضر در محیط دانشگاهی داوطلب که در سطح چند قاره گسترده شدهاند [به صورت آزمایشی] در حال اجرا میباشد.
«یوسیمیكرا» (شکل۱) از سه زیرسیستم تشکیل میشود: الف) زیرسیستم «هماهنـگ کننـده»[۹]؛ ب) زیرسیـستم «عامـلهای سیار»[۱۰] ؛ ج) یک «موتور کاوش همگانی» که پرسشهای كاربر را در پایگاه اطلاعاتی که توسط زیرسیستم هماهنگکننده نگهداری میشود، جستجو میکند.
زیرسیستم هماهنگکننده در سایت «موتور کاوش» قرار دارد و مسئولیتهای آن عبارتاند از: الف) نگهداری پایگاه اطلاعاتی جستجو، ب) ارائه ثبتنام برخط[۱۱] برای وبسایتهای جدیدی که میخواهند در «یوسیمیكرا» مشاركت كنند، ج) اجرای «زیرسیستم عاملهای سیار». «زیرسیستم عاملهای سیار» مسئول خزیدن در وب میباشد و از دو گونه از این عاملها، یعنی «خزندههای مهاجر» (یا خزندههای سیار[۱۲]) و «حاملهای دادهها» تشکیل میشود. شکل ۲ «یوسیمیكرا» را در حین کار نشان میدهد.
همان گونه که در بالا ذکر شد، هسته سیستم خزنده «یوسیمیكرا»، «خزندههای مهاجر مبتنی بر جاوا» هستند. خزندههای مهاجر بر پایه قابلیت ماهوی سیار خود توانایی انجام کارهای زیر را دارند.
۱. گسیلشدن: به سوی سرورهای وب جدیدی که میخواهند در «یوسیمیكرا» مشاركت كنند؛
۲. خزیدن: یک خزنده مهاجر میتواند (چه از طریق «اچتیتیپی» یا سیستم فایلی) یك خزش محلی كامل انجام دهد؛
۳. پردازش: مدارکی که مورد خزش قرار گرفتهاند به کلیدواژههایی تقلیل داده میشوند و این کلیدواژهها بر اساس ویژگیهای بصری (فونت و رنگ)، موقعیت و فراوانی تکرار، و به منظور ایجاد یك نمایه كلیدواژهای در محل از محتویات سرور وب، رتبهبندی میشوند؛
۴. فشردهسازی: نمایه محتویات سرور وب، در محل فشرده میشوند تا زمان انتقال بین خزنده مهاجر و زیرسیستم هماهنگکننده به حداقل برسد؛
۵. انتقال دادهها: نمایه فشردهشده، توسط حاملهای دادهها به زیر سیستم هماهنگکننده منتقل میشود. در آنجا، [نمایه فشردهشده] مجدداً به حالت اولیه برگردانده میشود و در پایگاه اطلاعاتی جستجو، ادغام میگردد. دلیل استفاده از عاملهای سیار برای انتقال دادهها بر روی دیگر رابطهای برنامه نویسی کاربردی[۱۳] شبكه (مانند RMI, COBRA Sockets [۱۴]) کاربرد ناهمزمانی، انعطافپذیری و هوشمندی آنها به منظور اطمینان از انتقال مستمر دادهها میباشد.
۶. نظارت: خزنده مهاجر میتواند تغییرات به وقوع پیوسته در محتویات سرور وب را تشخیص دهد. تغییرات تشخیص دادهشده بلافاصله پردازش، فشردهسازی، و به زیرسیستم هماهنگکننده منتقل میشوند.
۷. ارتقاهای بیدرنگ: کدهای جدید مربوط به انجام هر یك از کارهای مذكور در بالا به آسانی قابل استفاده است، زیرا معماری خزش در «یوسیمیكرا» بر پایه جاوا میباشد.
۳. ارزیابی «یوسی میكرا»
به مقایسه عملکرد سیستم خزنده «یوسیمیكرا» با خزیدن سنتی در خصوص الف) حجم دادههای انتقال دادهشده در اینترنت، ب) کل زمان لازم برای انجام فرآیند خزیدن در یک سری از مدارک میپردازیم. در آغاز کار، فقط این دو متریک ساده ]یعنی حجم و زمان[ را مورد مطالعه قرار میدهیم و با پارامترهایی مانند بسامد تغییرات مدارک، آزمایش نمیكنیم. از آنجا كه این امکان وجود نداشت که سرورهای تجاری وب را در آزمایشهای خود داخل کنیم، یک مجموعه دهتایی از سرورهای دانشگاهی وب را که در چندین قاره پراکنده بودند در محیط توزیعشده داوطلبانه دانشگاهی خود به خدمت گرفتهایم. هرسرور وبی، میزبان حدود ۲۰۰ مدرک با میانگین حجم ۲۵ کیلو بایت بود. اعداد قبلی بیانگر این بود که۲/۴۶ مگابایت از دادهها باید به وسیله خزیدن سنتی وشیوه «یوسیمیكرا» پردازش شوند. به دلیل محدودیت فضا، یافتههای خود در خصوص حجم دادههای انتقال داده شده را ارائه میكنیم (یافتههای ما در مورد زمان مورد نیاز، ]به این یافتهها[ شبیه هستند).
نتایج عملکرد (جدول۱) نشان میدهند که «یوسیمیكرا» (ردیف ۵) با تولید تقریباً ۲۰ برابر دادههای كمتر، عملكرد بهتری نسبت به خزیدن سنتی (ردیف۱) دارد. دلیل این امر آن است که خزندههای مهاجر، منابع وب را به صورت محلی در سرور وب، پردازش و فشرده میکنند. به این ترتیب، فقط نمایه رتبهبندیشده کلیدواژههای فشردهشده از محتویات سرور وب، به زیرسیستم هماهنگکننده انتقال داده میشود. در شیوه خزیدن سنتی، باید كل محتویات یک سرور وب برای پردازش متمرکز به وسیله خزنده، ضبط شوند. بعلاوه، خزنده سنتی ممکن است نیازمند فشردهسازی محتویات یك سرور وب به منظور ضبط آنها باشد، ولی نتواند آن سرور را وادار به این کار کند.
برای بدست آوردن تفسیر بهتری از نتایج عملکرد خود، سه آزمایش دیگر، این بار با تغییر شیوه «یوسیمیكرا» به منظور انجام دادن (یا انجام ندادن) پردازش و فشردهسازی به صورت محلی انجام دادیم. نتایج ما نشان داد كه چه با پردازش و چه با فشردهسازی، یافتههای عملكردی باز هم تا حدودی مصداق دارند. اما بدون فعال كردن گزینه پردازش یا فشردهسازی، نتایج به دست آمده از میان میروند، زیرا «یوسیمیكرا» با شیوه خزیدن سنتی رقابت میكند.
۴. کار جاری
کاری که ما در حال حاضر روی آن تمرکز داریم، توسعه «یوسی میكرا» برای پشتیبانی از یک سازوكار خزیدن دوگانه میباشد که فناوریهایی را، هم از سیستم خزیدن سنتی و هم از سیستم خزیدن کاملاً توزیعشده، وام گرفته است. این سیستم خزیدن دوگانه از یك ساختار مدیریت سلسلهمراتبی پشتیبانی خواهد کرد که شبکه را به صورت محلی در نظر میگیرد. الگوریتمهای کارآمد برای احاله كار، اداره، و تلفیق نتایج کار هم اکنون در حال انجام هستند.