در RFC 1135(Request For Comments) که تفاوت بین ویروس و کرم رو تشریح کرده تعریف زیر برای ویروس آمده :
" یک ویروس یک قطعه کد است که خودش را درون یک هاست در سیستم عامل جا می دهد تا خود را انتشار دهد . به طور مستقل نمی تواند اجرا شود. نیاز به اجرای هاستش دارد تا او را فعال کند."
به طور کلی ویروس ها یک فاز سرایت دارند که خودشون رو تکثیر می کنند و یک فاز حمله دارند که هر کاری دلشون می خواد می کنند و بلاهای خانمان سوزی رو بر سر شما و کامپیوتر زبون بسته میارن.(البته با توجه به نوع برنامه ای که برای اون ها نوشته شده.) . معمولا هم بدون اجازه و آگاهی شما تکثیر می شن .
اگر بخواهیم یک تعریف از ویروس ارائه بدیم :
یک ویروس یک برنامه است که با کد خودش ، خودش رو از طریق متصل شدن به دیگر فایلهای اجرائی تکثیر میکنه و در این حالت کد ویروس با هر بار اجرای اون فایل اجرائی ، اجرا میشه.
منظور از یک فایل اجرائی میتونه یک فایل EXE و یا COM و یا چیزی مثل بعضی از ماکروها در Microsoft Word .
و منظور از متصل شدن ویروس به برنامه اضافه شدن اون به انتهای برنامه ، یا جایگرفتن در وسط برنامه و یا قراردادن یک اشاره گر درون فایل به آدرس ویروس که میتونه در هر جائی از هارد دیسک شما باشه.
اکثر ویروس ها کار خودشون رو با جایگزاری کد خود به جای یک قطعه از کد برنامه های دیگه انجام میدن.
اگه بخواهیم از یک جنبه دیگه به ویروس ها نگاه کنیم ، میشه ویروس ها رو برنامه هائی در نظر گرفت که نوشته میشن تا تعداد زیادی کپی از خودشون بسازند. این گونه از ویروس ها خودشون رو با متصل کردن به برنامه های مختلف تکثیر می کنند.و به محض اجرای برنامه آلوده کد مخرب ویروس اجرا شده و به هر برنامه دیگری که بتونه خودش رو متصل می کنه.
کرم هم خیلی شبیه به ویروسه. با این تفاوت که دوباره از خودش تولید نمی کنه. به جای اون تنها بین سیستم ها خودش رو انتشار میده و نوعا تنها در حافظه وجود دارد.کرم ها معمولا بر روی شبکه ها و سیستم عامل های چندپردازنده ای دیده می شوند . کپی های قابل اجرا از خودش رو تولید می کنه و هر کپی جدید دوباره کپی های دیگری رو میسازه که به سرعت باعث کند شدن و گاهی از کار افتادن کل سیستم میشه.
RFC 1135 کرم رو به صورت زیر توصیف کرده:
"کرم یک برنامه است که می تواند به طور مستقل اجرا شود . منابع هاستش را مصرف کرده و آن ها را به منظور نگهداری از خویش، تحلیل می دهد و می تواند یک نسخه کامل اجرائی از خودش را بر روی ماشین های دیگر انتشار دهد."
بنابراین کرم قطعه کدی است که خودش رو بین هاست های مختلف انتشار میده و ویروس قطعه کدی است که تنها بر روی یک هاست خودش رو انتشار میده.
برنامه هائی هم هستند که هر دو کار را انجام میدن که میشه به اون ها ویروس/کرم گفت.
مدل معماری لایه ای از چند لایه به شکل زیر تشکیل شده:
این لایه ، لایه ایست که کاربر مستقیما با آن سروکار دارد و خود از دو مولفه تشکیل شده :
اگر با مفهوم User Experience Model در تحلیل و طراحی شیء گرا آشنا باشید story board همان UI Component و navigation map همان UI Process Component را شامل می شود.
Business Logic Layer(BLL)
نرم افزارهائی قدرتمند هستند که مستقل از لایه واسط کاربری بتوانند به ارائه سرویس بپردازند. اگر درخواستی از مولفه دیگری در یک سازمان که نرم افزار ما در آن نصب و راه اندازی شده وارد سیستم ما شود ، سیستم باید توانائی پاسخگوئی به آن را داشته باشد . مسائلی از این قبیل در بخش service interface راه اندازی می شود.
سطح بعدی در BLL شامل سه قسمت اصلی است :
موارد دیگری که باید در BLL قرار گیرند عبارتند از :
که Object ها در قسمت Business Entity ، ارتباط میان اشیا ، قواعد و فرایند ها در قسمت Business Component و رویه و ترتیب انجام کارها در قسمت Business Workflow جای می گیرند.
Data Access Layer
ارتباط application با داده ها و data base در لایه Data Access Layer انجام می گیرد. و نتیجه حاصل در اختیار لایه های بالاتر و یا سیستم های دیگر قرار می گیرد. داده هائی که یک application از آن ها استفاده می کند می تواند توسط خود سیستم نگهداری شود و یا از داده هائی باشد که در سیستم ها و application های دیگر تولید و نگهداری می شود .
Service Gateway قسمتی است که سرویسی را از لایه BLL در جای دیگر فراخوانی می کنیم .
به طور خلاصه، فرآیند مورد نظر ما این گونه کار می کند:
مزیت های استفاده از معماری لایه ای
1. لایه های بالائی نتوانند مستقیما به داده ها دسترسی داشته باشند
2. از لایه BLL به بالاتر به نوعData Base وابستگی نداشته باشد.
3. و اگر بخواهیم تکنولوژی مورد استفاده در یک لایه را تغییر دهیم ، نیاز به تغییر در هیچ یک از لایه های دیگر نیست.
تذکر این نکته نیز مهم است که ارتباط بین لایه های مختلف با یکدیگر باید در سطح سرویس باشد . و هر لایه تنها از سرویسی که از لایه های دیگر می گیرد اطلاع دارد و به هیچ وجه به چگونگی عملیات درون لایه بالاتر یا پایین تر کاری ندارد.
معمولا اگر ویندوز با مشکلی از قبیل مشکلاتی در هنگام اجرا و یا نصب برنامه ها مواجه بشه ، پنجره ای به شما نشون میده که آیا این خطا رو به مرکز پشتیبانی مایکروسافت گزارش بدم یا نه ؟؟؟
که در صورت موافقت شما و اتصال به اینترنت خطا گزارش میشه و در غیر این صورت هم هیچی !!خطا گزارش نمیشه .
وجود این قابلیت مفیده و در مواقعی که خطائی که برای شما رخ داده ، برای پشتیبانی مایکروسافت شناخته شده باشه ، به شما در جهت رفع مشکل پیشنهاد و راهنمائی میده و در غیر این صورت به تیم های توسعه ، در جهت رفع مشکل گزارش میشه.
بنابراین غیر فعال کردن اون توصیه نمیشه .
ولی حالا اگه شما بخواید این قابلیت گزارش خطا رو در ویندوز غیر فعال کنید تا هر وقت که یه خطا رخ میده ، از شما درباره اتصال به اینترنت و گزارش خطا سوال نشه ، میتونید این کار ها رو انجام بدید :