Want create site? Find Free WordPress Themes and plugins.

ابزارهای به کار گرفته شده

Redis

یک پایگاه داده NoSQL به صورت Key:Value می باشد که از سرعت بسیار بالایی در پاسخگویی برخوردار است. برای نگهداری کش‌ ها، مقادیر IDF هر کلمه (که برای محاسبه TF-IDF مورد نیاز است) و سایر موارد از این پایگاه داده استفاده شده است.

از جمله دلایل استفاده از این پایگاه داده توزیع پذیری و سرعت پاسخگویی بسیار زیاد می باشد.

 

Python

کلیه ساختار پروژه با استفاده از زبان پایتون نسخه 3.6 نوشته شده است.

لیست Package های استفاده شده (بدون احتساب package های built-in زبان پایتون)

 

pyopenssl

 

requests

 

consecution

 

lxml

 

pythonwhois

 

tldextract

 

redis

 

flask

 

Anaconda

از Anaconda برای مدیریت محیط های کاری پایتون استفاده شده است.

 

Gunicorn

از gunicorn برای ساماندهی worker های مورد نیاز برای سیستم استفاده شده است. این ابزار با کمک flask تعداد دلخواهی instance از application مورد نظر میسازد و تحت port یا فایل .sock خاص bind می‌کند.

 

Nginx

از این وب سرور به دلیل انعطاف پذیری و قدرت بالای آن استفاده شده است. Nginx وظیفه proxy و مدیریت درخواست ها از پورت 80 به فایل bind شده در gunicorn را برعهده دارد.

معماری نرم افزار

از Pipeline Design Pattern برای طراحی مراحل Test و Ranking استفاده شده است. به دلیل پاسخگویی مناسب این معماری با ذات این پروژه، انعطاف و توسعه پذیری مناسب سیستم نیز میسر شده است.

پردازش درخواست ها

هر ورودی که شامل یک URL کامل دریافت شده از سمت کلاینت می‌باشد مراحل زیر را برای پردازش طی می‌ کند. لازم به ذکر است که برخی از مراحل به اصطلاح Fatal هستند و درصورتی که جواب نهایی به Request ورودی داده شود، باقی مراحل طی نمیگردند. این فرایند سبب بهبود سرعت و کاهش سربار سرور میگردد.

 

بررسی کش ها

با بررسی url ورودی در بخش کش ها در Redis در صورت وجود، پاسخ سریع به درخواست داده می‌شود. لازم به ذکر است که عمر کش ها در بخش تنظیمات قابل تغییر است.

 

بررسی Blacklist

بررسی url در لیست سیاه سیستم. این لیست سیاه توسط مخازن معتبر سایت های فیشینگ به روزرسانی میگردد (ذخیره سازی در redis) . در صورت وجود در لیست سیاه url خطرناک برچسب گذاری خواهد شد.

Did you find apk for android? You can find new Free Android Games and apps.