بایگانی دسته بندی ها: نرم‌افزار

پیام رسانی فوری Instant Messaging – IM

پیام رسانی فوری یا Instant Messaging چیست؟

پیام رسانی فوری (Instant Messaging به اختصار IM) به نوعی گفتگوی برخط (Online) گفته می‌شود که طی آن متون با کمک اینترنت یا سایر شبکه‌های رایانه‌ای به صورت بلادرنگ منتقل می‌شود. در نرم‌افزارهای پیام رسان فوری (Instant Messenger) معمولا کاربر پس از نوشتن متن موردنظر خود با کمک گزینه‌ای به نام ارسال (Send)، پیام خود را برای مخاطب یا مخاطبین ارسال می‌کند.

یکی از اهداف اصلی سرویس‌های پیام رسانی فوری، تسهیل ارتباط میان کاربرانی است که به نوعی یکدیگر را می‌شناسند. این در حالی است که کاربرانی که در یک اتاق گفتگو (Chat Room) با یکدیگر مکالمه می‌کنند معمولا از یکدیگر شناخت خاصی ندارند. از سوی دیگر در پیام رسانی فوری (بر خلاف ذات ارسال پیام از طریق ایمیل) امکان دریافت سریع پاسخ از سوی مخاطب فراهم می‌باشد.

پیام‌هایی که در این سرویس‌ها میان دو یا چند کاربر رد و بدل می‌شود معمولا پیام‌هایی کوتاه (در حد یک یا دو جمله) هستند و به این ترتیب بستری مناسب برای پاسخ‌دهی کوتاه و سریع مشابه یک گفتگوی شفاهی میان افراد مهیا می‌شود. افزون بر نیاز کاربران عادی به استفاده از IM، بسیاری از سازمان‌ها و شرکت‌های کوچک و بزرگ نیز برای اهداف تجاری خود به استفاده از پیام‌رسان‌های معمولی و ویژه روی آورده‌اند.

ویژگی‌ها و امکانات سیستم‌های پیام رسانی فوری

از نظر فنی، پیام رسانی فوری می‌تواند به شکل همتا به همتا (Peer-to-Peer) یا مبتنی بر مدل کلاینتسرور (Client-Server) پیام کاربران را مبادله نماید. در پیام رسان‌های نوع اول، بدون وجود هیچ واسطه‌ای پیام به صورت مستقیم از فرستنده برای گیرنده ارسال می‌شود. اما در حالت دوم، پیام ابتدا برای یک سرور ارسال می‌شود و سپس سرور آن را برای گیرنده ارسال می‌کند. در این حالت در کنار فوایدی نظیر امکان ارسال پیام برای کاربرانی که هم اکنون آنلاین نیستند و نگه‌داری پیام‌ها در مکانی ایمن، بحث اعتماد کاربران به سرور نیز به موضوعی تأمل‌برانگیز تبدیل می‌شود.

هرچند قابلیت اصلی یک پیام رسان فوری، ارسال متن است اما بسیاری از اپلیکیشن‌های امروزی در این حوزه، امکان گفتگوی صوتی و ویدیویی را با کمک میکروفن و وبکم رایانه یا دوربین گوشی‌های هوشمند فراهم کرده‌اند. نگه‌داری لیست مخاطبین (Contact List)، ارسال تصویر، ویدیو و انواع مختلف فایل‌ها با حجم محدود نیز از دیگر امکاناتی است که اغلب پیام رسان‌های فوری به صورت رایگان در اختیار کاربران خود قرار می‌دهند.

مسائل امنیتی در پیام رسانی فوری

رشد استفاده از پیام رسان‌های رایگان در میان افراد و حتی شرکت‌ها و سازمان‌ها و وجود امکان ارسال پیوند و فایل‌های مختلف در این اپلیکیشن‌ها کاربران را با نوع جدیدی از ریسک‌های امنیتی روبرو کرده است. تشویق کاربران برای ورود به سایت‌های جعلی (فیشینگ) و یا هدایت آن‌ها برای دانلود ویروس‌ها و کرم‌های رایانه‌ای از طریق ارسال پیوندها به حجم عظیمی از مخاطبین و همچنین ارسال مستقیم بدافزارها از جمله روش‌هایی است که هکرها و سودجویان در پیام رسان‌های فوری برای رسیدن به اهداف خود دنبال می‌کنند.

علاوه بر این، نگه‌داری پیام‌ها و اطلاعات مرتبط با کاربران روی سرور نیاز به رعایت نکات امنیتی و فراهم آوردن زیرساخت‌های مناسب نرم‌افزاری و سخت‌افزاری از سوی کاربران و ارائه‌دهندگان این سرویس‌ها را به موضوعی با اهمیت‌تر تبدیل می‌کند.

پیام رسان‌های رایج

اسکایپ (Skype)، واتس اپ (Whatsapp)، فیس بوک مسنجر (Facebook Messenger)، Windows Live Messenger، گوگل تاک (Google Talk)، تلگرام (Telegram)، AIM، وی چت (WeChat)، یاهو مسنجر (Yahoo Messenger)، لاین (Line)، وایبر (Viber) و … از جمله مشهورترین پیام‌رسان‌های فوری هستند که دارای قابلیت‌ها و امکانات متنوع و قدرتمندی هستند.

اغلب این پیام رسان‌ها دارای نسخه‌های مختلف برای گوشی‌های هوشمند، تبلت‌ها و رایانه‌های مبتنی بر سیستم عامل‌های اندروید، iOS، ویندوز و حتی نسخه‌های تحت وب (وب اپلیکیشن) می‌باشند.

پیام رسانی فوری Instant Messeaging
بخش‌های گفتگوی متنی و ویدیویی در پیام رسان فوری اسکایپ

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

پایگاه داده رابطه ای Relational Database

پایگاه داده رابطه ای یا Relational Database چیست؟

پایگاه داده رابطه ای (Relational Database) نوعی پایگاه داده براساس مدل رابطه ای (Relational Model) داده‌هاست. در این مدل، داده‌ها در قالب تعدادی جدول (Table) نگه‌داری می‌شوند. به این جداول، رابطه (Relation) نیز گفته می‌شود. هر جدول شامل تعدادی ستون (Column) و ردیف (Row) می‌باشد. به ستون‌ها، ویژگی (Attribute) و به ردیف‌ها رکورد (Record) یا چندتایی (تاپل یا Tuple) نیز گفته می‌شود.

نمونه جدول یک پایگاه داده رابطه ای relational database table
نمونه جدول اطلاعات دانشجویی از یک پایگاه داده رابطه‌ای

مهم‌ترین مفاهیم پایگاه‌داده‌های رابطه‌ای

معمولا هر جدول (یا رابطه)، مربوط به یک نوع موجودیت (نظیر محصول، کارمند، دانشجو و …) می‌باشد و هر ردیف از آن نمایانگر نمونه‌ای از این نوع موجودیت (نظیر محصولی با نام و مدل مشخص) و ستون‌ها هم مقادیر ویژگی‌ها (نظیر قیمت) را برای نمونه‌های مختلف موجودیت موردنظر نگه‌داری می‌کنند. مقادیر مجاز برای هر ویژگی می‌تواند توسط یک دامنه محدود شود. برای مثال ویژگی جنسیت می‌تواند به مجموعه دامنه {“مرد” و “زن”} محدود شود.

کلید اصلی (Primary Key) به ویژگی یا مجموعه‌ای از ویژگی‌ها در یک رابطه گفته می‌شود که می‌تواند یک رکورد را به صورت منحصربفرد مشخص کند. در واقع مقادیر کلیدهای اصلی هرگز در رکوردهای یک رابطه تکرار نمی‌شوند. برای مثال، کد دانشجویی برای رابطه‌ای که اطلاعات مربوط به دانشجویان را نگه‌داری می‌کند (تصویر فوق) گزینه مناسبی برای کلید اصلی به شمار می‌رود.

کلید خارجی (Foreign Key) فیلدی در یک جدول است که به طور یکتا ردیفی از یک جدول دیگر یا همان جدول را مشخص می‌کند. به عبارت بهتر کلید خارجی به عنوان یک ویژگی در جدولی ثانویه تعریف می‌شود و با کلید اصلی یا کلیدی یکتا (یک ویژگی با مقادیر غیرتکراری) از جدول اولیه منطبق می‌شود و به این ترتیب میان ردیف‌های دو جدول ارتباط ایجاد می‌کند. برای مثال تصور کنید در جدولی به نام People اطلاعات مشتریان یک شرکت با کلید اصلی PID و در جدولی دیگر به نام Order اطلاعات مربوط به کالاهای سفارش داده شده توسط تمام مشتریان با کلید اصلی OID نگه‌داری می‌شود. برای اینکه در جدول Order بتوانیم تشخیص دهیم هر کالا توسط چه فردی سفارش داده شده است کافی است PID فرد سفارش دهنده را نیز به این جدول اضافه کنیم. در این حالت ویژگی PID در جدول دوم یک کلید خارجی است.

رابطه‌هایی که در خود داده‌ها را نگه‌داری می‌کنند در قالب Table پیاده‌سازی می‌شوند و به رابطه‌های اصلی (یا Base Relations) موسوم هستند. در مقابل، رابطه‌هایی نیز وجود دارند که داده‌ای را نگه‌داری نمی‌کنند بلکه آن‌ها را با انجام اعمالی روی رابطه‌های اصلی ایجاد می‌کنند. به این نوع رابطه‌ها، رابطه‌های مشتق شده (یا Derived Relations) گفته می‌شود و در قالب دید (View) ها و پرس و جو (Query) ها پیاده‌سازی می‌شوند. ممکن است رابطه‌های مشتق شده اطلاعات خود را از یک یا چند رابطه دریافت کنند.

عملگرهای رابطه‌ای

پرس و جوهایی که روی پایگاه‌داده‌های رابطه‌ای انجام می‌شود براساس جبر رابطه‌ای (Relational Algebra) شکل گرفته‌اند. در جبر رابطه‌ای هشت عملگر پرکاربرد وجود دارد که حاصل آن‌ها در قالب یک رابطه و به صورت زیر تعریف می‌شود. توجه داشته باشید برای عملگرهای اجتماع، اشتراک و تفاضل نکته قابل توجه در مورد رابطه‌هایی که به عنوان عملوند استفاده می‌شود اینست که این رابطه‌ها باید دارای مجموعه ویژگی‌های یکسانی باشند.

  • عملگر اجتماع (Union): این عملگر دوتایی (باینری یا دو عملوندی) بوده و شامل تمام تاپل‌های موجود در عملوندهایش خواهد بود. در رابطه حاصل، ردیف‌های تکراری حذف می‌شوند.
  • عملگر اشتراک (Intersection): حاصل این عملگر دوتایی شامل مجموعه تاپل‌هایی خواهد بود که در هر دو رابطه مشترک هستند.
  • عملگر تفاضل (Difference): حاصل این عملگر دوتایی شامل تاپل‌هایی از رابطه اول خواهد بود که در رابطه دوم وجود ندارند.
  • عملگر ضرب دکارتی (Cartesian Product): هر تاپل حاصل از این عملگر دوتایی با الحاق یک تاپل از رابطه اول و یک تاپل از رابطه دوم شکل می‌گیرد.
  • عملگر انتخاب (Selection): عملگری یکانی است که تنها تاپل‌هایی از رابطه خود را برمی‌گرداند که شرط یا معیار خاصی را برآورده می‌کنند.
  • عملگر تصویر (Projection): عملگری یکانی است که تنها ویژگی‌های مشخص شده را از تاپل‌های موجود استخراج می‌کند.
  • عملگر پیوند (Join): رایج‌ترین نوع این عملگر به پیوند طبیعی (Natural Join) مشهور است. رابطه حاصل از این عملگر دوتایی شامل تمام ویژگی‌های موجود در رابطه‌های دو عملوندش می‌باشد و با الحاق تاپل‌هایی از دو رابطه که روی ویژگی‌های مشترکشان مقادیر یکسان دارند شکل می‌گیرد.
  • عملگر تقسیم (Division): حاصل این عملگر دوتایی تنها شامل ویژگی‌هایی از رابطه اول خواهد بود که در رابطه دوم وجود ندارند. تاپل‌های رابطه حاصل نیز شامل مقادیر این ویژگی‌ها در تاپل‌هایی از رابطه اول خواهد بود که ترکیب آن‌ها با تمام تاپل‌های رابطه دوم در رابطه اول وجود داشته باشد.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

ماشین مجازی Virtual Machine

ماشین مجازی یا Virtual Machine چیست؟

ماشین مجازی (Virtual Machine به اختصار VM) یک همسان‌سازی از سیستم‌های رایانه‌ای است. در واقع ماشین‌های مجازی می‌توانند رفتار و عملکرد یک رایانه فیزیکی را تقلید کنند. معمولا این همسان سازی حاصل ترکیبی از نرم‌افزار و سخت‌افزارهای ویژه می‌باشد.

به عبارت ساده‌تر، ماشین مجازی یک کامپیوتر نرم‌افزاری – سخت‌افزاری است که مشابه یک کامپیوتر فیزیکی می‌تواند برنامه یا یک سیستم عامل را اجرا کند. سابقه ماشین‌های مجازی به دهه 1960 میلادی برمی‌گردد.

اغلب ماشین‌های مجازی براساس یک معماری رایانه‌ای طراحی می‌شوند اما برخی از آنها قادر هستند رفتار معماری‌های مختلف را همسان‌سازی کنند و به این ترتیب از عهده اجرای نرم افزارها و سیستم عامل‌های طراحی شده برای چند معماری مختلف برمی‌آیند.

به نرم‌افزار یا سخت‌افزاری که امکان ایجاد و اجرای یک ماشین مجازی را فراهم می‌کند Hypervisor (هایپروایزر) گفته می‌شود. سیستم فیزیکی که ماشین مجازی روی آن اجرا می‌شود ماشین میزبان (Host Machine) نامیده می‌شود و هر ماشین مجازی را نیز یک ماشین مهمان (Guest Machine) می‌نامند.

انواع ماشین‌های مجازی و کاربردهای آن‌ها

شاید بتوان گفت محرک اصلی برای شکل‌گیری ماشین‌های مجازی، تمایل کاربران به اجرای همزمان چند سیستم عامل بوده است. ماشین‌های مجازی سیستمی (System Virtual Machine) که تحت عنوان ماشین‌های با مجازی‌سازی کامل (Full Virtualization) نیز شناخته می‌شوند با تقلید رفتار یک ماشین واقعی می‌توانند یک سیستم عامل کامل را اجرا کنند. در این مدل با روش‌های مختلف و بهره‌گیری از تکنیک‌های اشتراک زمانی (Time Sharing) امکان ایجاد ماشین‌های مجازی مجزا (مدیریت و اشتراک منابع سخت‌افزاری یک ماشین واقعی مابین VM ها) فراهم می‌شود. این نوع ماشین‌های مجازی را می‌توان توسعه‌ای از حافظه مجازی (Virtual Memory) به شمار آورد و در کنار کاربردهایی همچون امکان اجرای همزمان چند سیستم عامل، اشکال‌زدایی آسانتر و بوت سریعتر هنگام توسعه یک سیستم عامل، به منظور تست نرم‌افزارهای در حال توسعه روی سیستم‌های مختلف و هم‌چنین نصب نرم‌افزارهایی که هنوز در مراحل آزمایشی به سر می‌برند یا عملکردشان به طور کامل شناخته شده نیست نیز استفاده می‌شود. گفتنی است مجازی سازی با کمک سخت افزار (Hardware-assisted Virtualization) رویکردی است که در آن امکان مجازی سازی کامل و کارامد با بهره‌گیری از قابلیت‌های سخت‌افزار میزبان (به خصوص پردازنده) مهیا می‌شود. VMware Workstation و Oracle VM VirtualBox دو نمونه از مشهورترین هایپروایزرهای این دسته به شمار می‌روند.

ماشین مجازی فرایندی (Process Virtual Machine) که به ماشین مجازی اپلیکیشن نیز مشهور است گونه دیگری از VM هاست که مشابه یک اپلیکیشن معمولی در سیستم عامل رایانه میزبان اجرا می‌شود. هدف از طراحی این ماشین‌ها ایجاد محیطی مستقل از پلتفرم است که امکان اجرای یک برنامه روی هر پلتفرمی را فراهم می‌آورد. این VM ها بر اساس یک مفسر ساخته می‌شوند و از مشهورترین آن‌ها می‌توان به ماشین مجازی جاوا (Java Virtual Machine) و Common Language Runtime اشاره نمود که به ترتیب برای اجرای برنامه‌های جاوا و برنامه‌های مبتنی بر .Net Framework طراحی شده‌اند.

ماشین مجازی Virtual Machine
نمایی از یک ماشین مجازی در حال اجرای Windows 7 و نرم افزار Mozilla Firefox – همانطور که مشاهده می‌کنید این ماشین مجازی روی Windows 10 در حال اجراست.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

رها افزار Abandonware

رها افزار یا Abandonware چیست؟

رها افزار (Abandonware) به نرم افزار یا محصولی گفته می‌شود که توسط سازنده آن به حال خود رها شده و مورد پشتیبانی قرار نمی‌گیرد. ممکن است حتی در صورت معتبر بودن حق کپی رایت چنین نرم‌افزارهایی، نقض آن توسط سازنده مورد پیگیری قرار نگیرد.

طبیعتا یک رها افزار مانند هر محصولی که سازنده‌اش آن را رها کرده است برای خرید رسمی عرضه نمی‌شود. با رواج رها افزارها و به خصوص با گسترش استفاده از اینترنت، در موارد قانونی نسخه‌های قدیمی رها شده به حال خود از طریق وبسایت‌های خاصی در اختیار کاربران قرار می‌گیرد.

دلایل رایج برای تبدیل شدن یک محصول به رها افزار

دلایل مختلفی وجود دارد که یک نرم افزار تجاری به رها افزار تبدیل شود. برای مثال ممکن است فعالیت شرکت سازنده یک نرم افزار به طور کامل متوقف شده باشد و یا با عرضه نسخه‌ای جدید از یک نرم افزار، نسخه‌های قدیمی آن پس از مدتی به رها افزار تبدیل شود. علاوه بر این یک نرم افزار می‌تواند به دلیل وابستگی به یک فناوری منسوخ شده (مانند سخت افزار یا سیستم عاملی قدیمی) کنار گذاشته شود و سازنده آن نیز به دلایل مختلف تمایلی به عرضه نسخه سازگار با سیستم‌های جدید نداشته باشد.

مشکلات ناشی از رها شدن یک نرم افزار

زمانی که عمر یک نرم افزار یا محصول به پایان می‌رسد معمولا کاربران آن با مشکلاتی از قبیل عدم امکان خرید یا عدم ارائه پشتیبانی روبرو می‌شوند. برای حل این مشکلات، برخی از سازندگان به جای اینکه محصول خود را به عنوان رها افزار معرفی کنند با تغییر لایسنس، آن را در قالب یک فری ویر (Freeware) در اختیار کاربران قرار می‌دهند. در چنین حالتی نرم افزار فری ویر برخلاف رها افزار که ممکن است همچنان از نظر کپی رایت دارای محدودیت باشد به صورت کاملا قانونی عرضه می‌شود.

از سوی دیگر سازندگان نرم افزارها برای آنکه از هزینه‌های پشتیبانی و نگهداری یک نرم‌افزار قدیمی رهایی یابند و در عین حال کاربران را حین مواجهه با مشکلات به حال خود رها نکنند می‌توانند با انتشار سورس کد نرم افزار (نرم افزار منبع باز) امکان پشتیبانی، رفع باگ‌ها و … را برای سایر توسعه‌دهندگان و انجمن‌های کاربری فراهم آورند.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

اسکرین ریدر Screen Reader

اسکرین ریدر یا Screen Reader چیست؟

اسکرین ریدر (Screen Reader) یا صفحه خوان نوعی نرم‌افزار کاربردی و ابزار یاری‌رسان است که قادر است با تحلیل محتوا و اجزای مختلف واسط کاربری یک اپلیکیشن یا سیستم عامل، آن را به شکل صدای ساختگی یک انسان یا به محتوای مناسب برای نمایشگرهای مخصوص خط بریل تبدیل نماید.

استفاده از صفحه‌خوان‌ها برای افراد نابینا یا دارای مشکلات دیداری و حتی افراد بی‌سواد می‌تواند نقشی اساسی در تعامل با دستگاه‌های رایانه‌ای ایفا کند. با این وجود کاربرانی که از نظر بینایی یا خواندن متون مشکلی ندارند نیز می‌توانند از مزیت تبدیل محتواهای متنی به صوت در این نرم‌افزارها بهره ببرند.

امروزه کاربرد صفحه خوان‌ها به حدی گسترش پیدا کرده است که از آن‌ها روی انواع رایانه‌ها، گوشی‌های هوشمند، تبلت‌ها و … می‌توان استفاده نمود. صفحه خوان Microsoft Narrator (در سیستم عامل مایکروسافت ویندوز)، VoiceOver (در سیستم عامل‌های ساخت شرکت اپل) و Google TalkBack (در سیستم عامل اندروید) در کنار نرم‌افزارهایی همچون JAWS و NVDA و Window-Eyes (برای ویندوز) و Orca (برای لینوکس) از جمله رایج‌ترین اسکرین‌ریدرها به شمار می‌روند. افزون بر این، اپلیکیشن‌هایی نیز وجود دارد که از قابلیت درون‌ساخته (built-in) برای پخش صوتی محتوای متنی (خواندن) برخوردار می‌باشند.

مرورگرهای وب، نرم‌افزارهای نمایش فایل‌های PDF، واژه‌پردازها و … از جمله نرم‌افزارهایی هستند که استفاده از صفحه خوان در آن‌ها با رواج و موفقیت بیشتری همراه بوده است. طبیعتا استفاده از این ابزارها در مقایسه با استفاده مستقیم از یک واسط کاربری گرافیکی (GUI) دشوارتر می‌باشد. گفتنی است برخی از اسکرین ریدرها با پشتیبانی از زبان‌های مختلف، امکان استفاده گسترده برای کاربران کشورهای گوناگون را فراهم آورده‌اند.

در واسط‌های کاربری گرافیکی برخلاف واسط‌های مبتنی بر خط فرمان، وجود عناصر گرافیکی در کنار متون، اسکرین ریدر را با آنالیزهای پیچیده‌تری درگیر می‌کند. در این حالت برخی از اسکرین‌ریدرها با تعامل و دریافت پیام‌های سطح پایین از سیستم عامل، نمایی متنی از واسط کاربری ایجاد می‌کنند و یا با کمک API های مخصوص به هدف خود دست پیدا می‌کنند. برای مثال وقتی فوکوس روی یک دکمه (Button) قرار می‌گیرد صفحه خوان به صورت صوتی یا از طریق نمایشگر بریل بیان می‌کند فوکوس روی یک دکمه قرار گرفته و عنوان آن را نیز به کاربر اعلام می‌کند تا بتواند نسبت به تعامل با آن تصمیم‌گیری بهتری داشته باشد.

در صفحات وب هم در صورتی که استانداردهای مربوطه به شکل مناسبی رعایت شده باشد، صفحه‌خوان با تجزیه و تحلیل کد HTML، تشخیص نوع المان‌ها و خواص منتسب به آن‌ها می‌تواند خروجی موردنیاز را برای کاربر فراهم آورد.

اسکرین ریدر Screen Reader
نمایی از پنجره Narrator Settings در ویندوز 10. Microsoft Narrator متنی که دور آن با کادر آبی رنگ مشخص شده است را برای کاربر می‌خواند.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

وب اپلیکیشن Web Application

وب اپلیکیشن یا Web Application چیست؟

وب اپلیکیشن یا نرم افزار کاربردی وب (Web Application به اختصار Web App) برنامه‌ای رایانه‌ای بر پایه مدل کلاینت – سرور می‌باشد که در مرورگرهای وب اجرا می‌شود. از جمله نرم‌افزارهای کاربردی وب می‌توان به فروشگاه‌های آنلاین، وب میل، سایت‌های ویکی، نرم‌افزارهای مدیریت پروژه و مدیریت تیم آنلاین، ابزارهای ویرایش آنلاین اسناد (نظیر واژه پردازها، ابزارهای پرزنتیشین و صفحات گسترده آنلاین)، ویرایشگرهای آنلاین تصویر و … اشاره نمود.

با بهره‌گیری از تکنولوژی‌های مختلفی از جمله جاوا، جاوا اسکریپت، سی اس اس، فلش، ایجکس و … واسط کاربری این اپلیکیشن‌ها به آنچه در اپلیکیشن‌های معمولی نصب شده روی سیستم عامل‌ها دیده می‌شود شباهت بسیاری پیدا کرده است. همچنین استفاده از تکنولوژی‌های اسکریپت‌نویسی سمت کلاینت امکان تجربه تعاملی با اپلیکیشن را بدون نیاز به لود مجدد صفحه برای کاربران فراهم می‌آورد. رعایت اصول و استانداردهای طراحی واکنشگرا نیز کمک می‌کند تا این اپلیکیشن‌ها روی صفحات نمایشگر با اندازه‌های مختلف، کاربردی و قابل استفاده باشند.

امروزه بسیاری از نرم افزارهای کاربردی (نظیر پیام رسان‌های Skype و WhatsApp، نرم‌افزارهای مجموعه Office و …) در کنار نسخه‌های قابل نصب دارای نسخه‌های تحت وب نیز می‌باشند. در مواردی که کاربر امکان نصب یک نرم افزار را ندارد (مانند رایانه‌های با دسترسی محدود شده) یا تمایل و فرصتی برای انجام این کار ندارد استفاده از وب اپلیکیشن‌ها می‌تواند گزینه‌ی کاملا راهگشایی باشد.

برخی از مزایای Web Application ها

بسیاری از اپلیکیشن‌های وب دارای قابلیت‌هایی هستند که مشابه با یک نرم افزار معمولی یا نسخه قابل نصب آنها می‌باشد. برخی از وب اپلیکیشن‌ها قادرند داده‌های خود را به صورت محلی روی رایانه کاربر یا روی فضایی ابری ذخیره کنند و از آن استفاده نمایند.

نرم‌افزارهای معمولی که نیاز به برقراری ارتباط با سرور دارند به طور محلی روی رایانه کاربر نصب می‌شوند. در صورتی که در سرور تغییراتی ایجاد شود که نیاز به تغییر برنامه نصب شده داشته باشد باید طی یک بروزرسانی این تغییرات روی برنامه محلی کاربر نیز اعمال شود. به علاوه این نرم افزار برای هر سیستم عامل و معماری متفاوتی باید دارای نسخه‌های مختلف باشد. این در حالیست که بروزرسانی یک نرم افزار کاربردی وب در لحظه میان کاربران منتشر شده و مورد استفاده قرار می‌گیرد، نیازی به نصب روی رایانه کاربر ندارد (روی مرورگر وب اجرا می‌شود) و روی هر پلتفرمی نیز قابل اجراست.

حفظ یکپارچگی روی دستگاه‌های مختلف از جمله ویژگی‌هایی است که با استفاده از وب اپلیکیشن‌ها به راحتی امکان‌پذیر است. به عنوان مثال اگر از نسخه آنلاین یک واژه پرداز استفاده می‌کنید می‌توانید در منزل از طریق رایانه دسکتاپ یا تبلت خود روی همان سندی کار کنید که بخشی از آن را روی رایانه دفتر کارتان تکمیل کرده‌اید و روز بعد نیز آن را در دفتر کار خود پرینت کنید! و یا حتی سندی که توسط همکارتان ایجاد شده است را کامل کرده یا مورد بررسی قرار دهید.

بسیاری از Web Application ها به صورت رایگان عرضه می‌شوند. با اینحال سازندگان چنین اپلیکیشن‌هایی می‌توانند با درنظر گرفتن پلن‌های ماهیانه و سالیانه متناسب با ویژگی‌های مورد نیاز و مدت استفاده کاربر هزینه‌ای را از او دریافت نمایند. معمولا حفظ امنیت وب اپلیکیشن و داده‌هایی که توسط هر کاربر ذخیره می‌شود دارای اهمیت خاصی است که بخشی از آن بر عهده ارائه‌کننده سرویس آنلاین نرم افزاری خواهد بود.

نرم افزار کاربردی وب - وب اپلیکیشن Web Application
نمایی از وب اپلیکیشن Word Online از مجموعه Office Online در مرورگر فایرفاکس – بسیاری از قابلیت‌های Microsoft Office Word در نسخه تحت وب به صورت رایگان قابل استفاده است.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

کلاینت Client

کلاینت یا Client چیست؟

کلاینت (Client) یا سرویس گیرنده به یک نرم افزار یا دستگاه رایانه‌ای گفته می‌شود که از خدمات ارائه شده توسط یک سرور (Server) استفاده می‌کند. سرور معمولا روی دستگاهی متمایز از کلاینت قرار می‌گیرد و کلاینت نیز برای دریافت خدمات مورد نیاز خود از طریق یک شبکه با سرور ارتباط برقرار می‌کند. این خدمات می‌تواند شامل اشتراک گذاری داده‌ها، اشتراک منابع سخت افزاری نظیر پردازنده، فضای ذخیره سازی و … باشد.

معماری مورد استفاده در ارتباط مابین Server و Client، مبتنی بر ساختاری است که از آن با عنوان مدل کلاینت – سرور یاد می‌شود. در رایج‌ترین نوع سناریوی ارتباطی، ابتدا Client درخواستی را برای Server ارسال می‌کند و سرور نیز پس از انجام عمل مورد نظر، پاسخی را برای Client ارسال می‌کند که معمولا در آن نتیجه انجام عمل درخواستی نیز گنجانده شده است.

به عنوان نمونه، مرورگرهای وب کلاینت‌هایی هستند که برای دریافت محتوای یک صفحه وب درخواست خود را به یک وب سرور ارسال کرده و سپس محتوای دریافت شده را در قالب یک صفحه وب به کاربر نمایش می‌دهند و یا یک کلاینت ایمیل (نظیر نرم افزار Mozilla Thunderbird) برای دریافت یا ارسال نامه‌های جدید به سرورهای ایمیل متصل می‌شود.

ذکر این نکته ضروری است که الزاما تمام اعمال مورد نیاز Client توسط Server انجام نمی‌شود. به عنوان مثال ممکن است یک Client پس از آنکه پاسخ موردنیاز خود را از Server دریافت نمود اقدام به انجام پردازش‌ها یا اعمالی روی این پاسخ نماید یا حتی نتیجه پردازش‌های خود را برای سرور ارسال نماید.

انواع کلاینت

بسته به اینکه چه حجم از کل عملیات توسط Client انجام می‌شود می‌توان آن‌ها را به سه دسته تقسیم نمود:

  • کلاینت فربه (Fat Client) یا ضخیم (Thick Client): به کلاینتی گفته می‌شود که بدون وابستگی شدید و بدون نیاز به ارتباط مداوم با سرور نیز قابلیت‌های فراوانی داشته باشد و حجم عمده‌ی فرایند پردازشی را خودش انجام دهد. برای مثال در یک برنامه کاربردی وب ممکن است پس از لود شدن برنامه، تمام اعمال مورد نیاز توسط Client و بدون آنکه داده‌ای با سرور رد و بدل کند انجام شود و در انتها نتیجه روی سرور ذخیره و با دیگران به اشتراک گذاشته شود. عدم نیاز به برقراری ارتباط مداوم و کاهش ترافیک مورد نیاز از یک سو و از سوی دیگر به کارگیری سرورهایی با سخت افزارهای ساده‌تر از مزیت‌های این مدل به شمار می‌رود.
  • کلاینت لاغر (Thin Client): کوچکترین و ساده‌ترین نوع Client هاست و بخش عمده‌ی اعمال مورد نیازش توسط سرور انجام می‌شود. برخلاف نوع فربه در کلاینت‌های لاغر وابستگی شدید به سرور وجود دارد و از لحاظ سخت افزاری باید سرور قدرتمندتری در اختیار داشته باشیم. برای مثال ممکن است یک Thin Client تنها به نمایش نتیجه دریافتی از سرور خود بپردازد و حتی نگه‌داری نتیجه نیز برعهده سرور باشد.
  • کلاینت مرکب (Hybrid Client): ترکیبی میانه از دو حالت پیشین در این نوع مشاهده می‌شود. چنین کلاینتی ممکن است پردازش‌ها را همانند Fat Client به صورت داخلی انجام دهد و از سوی دیگر برای نگه‌داری داده‌ها به سرور وابسته باشد.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

سرور Server

سرور یا Server چیست؟

سرور (Server) یا سرویس دهنده به یک برنامه یا دستگاه رایانه‌ای گفته می‌شود که برای سایر برنامه‌ها یا دستگاه‌ها که کلاینت (Client یا سرویس گیرنده) نامیده می‌شوند خدمات (یا سرویس‌هایی) را ارائه می‌کند. این خدمات می‌تواند شامل اشتراک داده، اشتراک منابع سخت‌افزاری، انجام محاسبات و … باشد.

معماری مورد استفاده در ارتباط Server و Client، مبتنی بر ساختاری است که از آن با عنوان مدل کلاینت – سرور یاد می‌شود. در رایج‌ترین نوع سناریوی ارتباطی، ابتدا کلاینت درخواستی را برای سرور ارسال می‌کند و سرور نیز پس از انجام عمل مورد نظر، پاسخی را برای کلاینت ارسال می‌کند که معمولا در آن نتیجه انجام عمل درخواستی نیز گنجانده شده است.

هرچند از نظر فنی اصطلاح Server به یک برنامه یا فرایند رایانه‌ای اطلاق می‌شود اما در فرهنگ عامه دستگاهی که برای اجرای برنامه‌های Server مورد استفاده قرار می‌گیرد نیز Server نامیده می‌شود. با توجه به اینکه دسترسی به سرورها معمولا از طریق شبکه رخ می‌دهد عملا اکثر آن‌ها به نمایشگر، ماوس، کیبورد، ورودی و خروجی صوتی و … مجهز نیستند و حتی سیستم عامل آن‌ها معمولا فاقد واسط کاربری گرافیکی (GUI) می‌باشد.

سخت افزارهایی که برای اجرای برنامه‌های Server طراحی می‌شوند معمولا در مقایسه با یک رایانه شخصی قوی‌تر و قابل اعتمادتر هستند. اجرای این برنامه‌ها باید بدون وقفه و با دسترس‌پذیری بالایی همراه باشد. استفاده از منابع برق بدون قطعی، خنک کننده‌های قدرتمند، بک آپ گیری متناوب و … از جمله ویژگی‌هایی است که برای یک Server نقشی حیاتی را ایفا می‌کند. در حال حاضر سیستم عامل‌های مبتنی بر UNIX و Windows Server بازار سرورها را در دست دارند.

انواع رایج سرورها

امروزه سرورهای گوناگونی بسته به کاربردهای مختلف در حال سرویس‌دهی هستند. از جمله رایج‌ترین Server ها می‌توان به موارد زیر اشاره نمود:

  • سرور وب (Web Server): این Server ها برای میزبانی صفحات وب مورد استفاده قرار می‌گیرند. هر وبسایتی به حداقل یک وب سرور نیاز دارد.
  • سرورهای محاسباتی: این نوع سرویس‌دهنده‌ها امکان انجام پردازش‌های سنگین را با به اشتراک‌گذاری منابعی همچون پردازنده و حافظه RAM بر بستر یک شبکه برای کلاینت‌ها فراهم می‌آورند. سیستم‌های رایانه‌ای و نرم‌افزارهایی که به پردازش‌های سنگینی نیاز دارند از چنین سرورهایی خدمات دریافت می‌کنند.
  • سرور پایگاه داده (Database Server): نگه‌داری و به اشتراک‌گذاری پایگاه داده بر بستر یک شبکه توسط این Server ها انجام می‌شود.
  • سرورهای فکس و پرینت: این سرورها با به اشتراک‌گذاری دستگاه‌های فکس و پرینتر این امکان را فراهم می‌آورند که یک رایانه کلاینت بدون اینکه به صورت فیزیکی و از طریق کابل‌های واسط به دستگاه دسترسی داشته باشد از طریق شبکه، نیازهای خود به این دستگاه‌ها را برطرف نماید. به این ترتیب لازم نیست در یک اتاق اداری برای هر سیستم رایانه‌ای یک دستگاه پرینتر یا فکس مجزا تهیه شود.
  • سرورهای ایمیل (Mail Server): این نوع از Server ها امکان ارسال و دریافت ایمیل را فراهم می‌آورند. دریافت کنندگان و ارسال کنندگان ایمیل کلاینت‌های این دسته به شمار می‌روند.
  • سرور فایل (File Server): اشتراک فایل و فضای ذخیره‌سازی فایل خدماتی است که توسط این Server ها ارائه می‌شود.
  • سرور اپلیکیشن (Application Server): نوعی سرور که به کلاینت‌های خود اجازه می‌دهد برنامه‌های کاربردی تحت وب را از طریق یک مرورگر وب اجرا نمایند.
سرور Server
مجموعه‌ای از  Server ها در کنار یکدیگر

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

ایجاد، خواندن، بروزرسانی و حذف Create, Read, Update and Delete – CRUD

ایجاد، خواندن، بروزرسانی و حذف یا Create, Read, Update and Delete – CRUD چیست؟

CRUD (یا کرود) اصطلاحی در دانش رایانه است که از حروف ابتدای چهار عمل اصلی مورد استفاده در ذخیره‌سازی داده‌ها یعنی ایجاد کردن (Create)، خواندن (Read)، بروزرسانی (Update) و حذف کردن (Delete) گرفته شده است. در برخی موارد از واژه‌های Retrieve (به معنای بازیابی) و Destroy (به معنای نابود کردن) نیز به عنوان جایگزین‌های معادل برای اعمال Read و Delete استفاده می‌شود.

کاربردهای رایج اصطلاح CRUD

این اصطلاح معمولا در حوزه‌هایی که با بازیابی و تغییر محتویات پایگاه داده در ارتباط است به کار می‌رود. در SQL دستورات معادل با این چهار عمل به ترتیب عبارتند از: INSERT (برای درج رکوردهای جدید در یک جدول)، SELECT (برای انتخاب یا بازیابی رکوردها از یک جدول)، UPDATE (برای بروزرسانی مقادیر موجود در رکوردها) و DELETE (برای حذف رکوردها از یک جدول).

در واسط‌های کاربری نیز این اعمال مربوط به زمانی می‌شوند که کاربر به نمایش، جستجو و تغییر اطلاعات (معمولا از طریق فرم‌های درنظر گرفته شده) اقدام می‌کند. برای مثال در واسط کاربری یک نرم افزار دفترچه تلفن لازم است بخش‌هایی برای افزودن آیتم جدید، بازیابی، جستجو و لیست کردن آیتم‌های ثبت شده، ویرایش آیتم‌ها و حذف آن‌ها درنظر گرفته شده باشد؛ در صورت نداشتن این قابلیت‌ها نرم‌افزار دفترچه تلفن عملا ناقص خواهد بود.

اصطلاحات مشابه با CRUD

از اصطلاحات دیگری که دارای مفاهیمی مشابه با CRUD هستند می‌توان به BREAD (برگرفته از واژه‌های Browse یا مرور کردن، Read یا خواندن، Edit یا ویرایش کردن، Add یا افزودن و Delete یا حذف کردن)، MADS (برگرفته از واژه‌های Modify یا تغییر دادن، Add یا افزودن، Delete یا حذف کردن و Show یا نمایش دادن) و DAVE (برگرفته از واژه‌های Delete یا حذف کردن، Add یا افزودن، View یا مشاهده کردن و Edit یا ویرایش کردن) اشاره نمود.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

مدیر کلمه عبور Password Manager

مدیر کلمه عبور یا Password Manager چیست؟

مدیر کلمه عبور یا پسورد منیجر (Password Manager) به ابزاری گفته می‌شود که امکان ایجاد و بازیابی کلمه‌های عبور را برای کاربر فراهم می‌کند. معمولا کلمه‌های عبور کاربر با کمک چنین ابزارهایی در یک پایگاه داده رمزنگاری شده محلی یا آنلاین نگه‌داری می‌شود و کاربر تنها با به خاطر سپردن یک کلمه عبور اصلی (موسوم به Master Password) که برای استفاده از این ابزار تعیین می‌کند می‌تواند به تمام کلمات عبور و اطلاعات ذخیره شده دسترسی پیدا کند.

اغلب این ابزارها به صورت خودکار فیلدهای مربوط به اطلاعات حساس (نظیر نام کاربری و رمز عبور) را تکمیل می‌کنند. افزون بر این برخی از آن‌ها قادرند فیلدهای مربوط به داده‌های شخصی (نظیر نام، آدرس پست الکترونیک، شماره تلفن و …) در فرم‌های وب را نیز با اطلاعات از پیش ذخیره شده تکمیل نمایند.

از جمله مشهورترین ابزارهای مدیریت کلمه عبور می‌توان به LastPass و Dashlane اشاره نمود.

انواع ابزارهای مدیریت کلمه عبور

ابزارهای مدیریت پسورد عموما در قالب یک نرم افزار روی رایانه یا دستگاه‌های همراه کاربر نصب می‌شوند و یا در قالب سرویس‌های آنلاین (تحت وب) مورد استفاده قرار می‌گیرند. گونه‌ای دیگر از این ابزارها نیز وجود دارد که به صورت کلیدهای سخت‌افزاری، مدیریت کلمه‌های عبور کاربر را عهده‌دار می‌شوند.

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

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

در گونه‌ی سوم از یک سخت افزار مانند حافظه‌های فلش USB برای مدیریت کلمه‌های عبور استفاده می‌شود. جهت دسترسی به کلمات عبور و اطلاعات ذخیره شده در این حافظه‌ها، استفاده از عامل دیگری مانند پین کد (تأیید اعتبار دو مرحله‌ای) می‌تواند در حفظ امنیت اطلاعات ذخیره شده کاربر مفید واقع شود.

مزایای استفاده از یک مدیر کلمه عبور مناسب

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

برخی از پسورد منیجرها بخشی برای تولید رمز عبور دارند که در صورت استفاده از الگوریتم‌های مناسب می‌تواند در انتخاب رمزهای عبور قوی و پیچیده (تا حد ممکن غیرقابل حدس) مفید واقع شوند.

نکات و آسیب‌های استفاده از مدیر کلمه عبور

باید توجه داشته باشید درصورتی که ابزار مورد استفاده توسط شما کلمه‌های عبورتان را به صورت رمزگذاری نشده ذخیره کرده باشد دسترسی به این اطلاعات حساس برای هکرها و بدافزارها بسیار آسان خواهد بود. انتخاب رمز عبور اصلی (Master) ساده امکان حدس زدن یا لو رفتن در اثر استفاده از روش‌های حمله لغت‌نامه‌ای و بروت فورس را تسهیل می‌کند. بنابراین به خاطر سپردن تنها یک رمز عبور پیچیده برای استفاده از پسورد منیجر ارزش محافظت از حجم عظیمی از نام‌های کاربری و کلمات عبور شما را خواهد داشت. در عین حال نباید این نکته را فراموش کرد که یک بدافزار با به دست آوردن این رمز اصلی (هرچند پیچیده) می‌تواند به تمامی اطلاعات ذخیره شده در پایگاه داده دسترسی پیدا کند.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا