Information Technology Broadcasting - اطلاع‌رسانی فناوری اطلاعات
407 subscribers
13.9K photos
41 videos
505 files
489 links
Information Technology, Cloud computing, Digital transformation, IoT, Edge computing, IT governance, Fog computing, IT security, IT regulation, IT trends, Programming، Big data, Monitoring, Databases, Api, Service
Download Telegram
Forwarded from Hadi
مقدمه ای بر توگف 9
1.2 مقدمه ای بر توگف 9:

1.2.1 توگف چیست؟

توگف یک چارچوب معماری سازمانی است. چارچوب معماری سازمانی که توسط Open Group ارائه شده است. توگف ابزاری برای کمک به پذیرش، تولید، استفاده و نگهداری طرح های معماری سازمانی می باشد. توگف بر پایه یک مدل فرآیندی تکرار پذیر می باشد، که توسط بهترین راهکارهای عملی و مجموعه ای از اجزای معماری با قابلیت استفاده مجدد، پشتیبانی می گردد.

توگف توسط انجمن معماری Open Group توسعه و نگهداری می شود. اولین نسخه توگف، در سال 1995، بر پایه چارچوب معماری فنی وزارت دفاع ایالات متحده آمریکا برای مدیریت اطلاعات ([1]TAFIM) ایجاد شد. با شروع کردن از این پایه بی نقص، انجمن معماری Open Group نسخه های موفقی از توگف را در دوره های زمانی معین ایجاد کرد و هر یک را بر روی وب سایت جامع Open Group منتشر ساخت.

این بخش، مفاهیم توگف نسخه 9 را که در کتاب به عنوان توگف 9 به آن اشاره شده، پوشش می دهد. توگف 9 اولین بار در ژانویه سال 2009 منتشر شد.

توگف 9 می تواند برای توسعه گستره وسیعی از معماری های سازمانی مختلف بکار برود. توگف مکمل دیگر چارچوب هایی است که به صورت متمرکز بر خروجی های خاص برای بخش های ویژه ای (نظیر: مخابرات، صنایع دفاع و خزانه داری و...) که در راس یک کشور هستند، در نظر گرفته شده اند. توگف همچنین می تواند در ترکیب با اینگونه چارچوب های خاص نیز استفاده شود. هسته توگف روشی است - تحت عنوان روش توسعه معماری توگف (ADM – Architecture Development Method) و برای توسعه یک معماری سازمانی که به نیازهای سازمان اشاره کامل می کند، به کار می رود.

1.2.2 ساختار راهنمای مرجع توگف:

موسسه Open Group یک راهنمای رسمی جهت استفاده از چارچوب معماری سازمانی خود یعنی توگف ارائه کرده است. این راهنما به صورت رایگان جهت دانلود موجود می باشد و تمامی قسمت های توگف را با جزئیات کامل شرح داده است. جدول 1-1 ساختار کلی این راهنما را نشان می دهد.

جدول 1-1: ساختار سند توگف

بخش توگف
خلاصه
بخش 1: مقدمه
این بخش معرفی سطح بالایی، از مفاهیم کلیدی معماری سازمانی و به طور خاص برای رویکرد توگف ارائه می کند. این بخش شامل تعاریف مربوط به عبارات بکار رفته در سراسر توگف و مطالب منتشر شده توصیف کننده تغییرات بین این نسخه و نسخه قبلی توگف می باشد.
بخش 2: روش توسعه معماری (ADM – Architecture Development Method)
این بخش هسته اصلی توگف است. این بخش روش توسعه معماری توگف (ADM) را تشریح می کند. ADM یک رویکرد گام به گام برای توسعه یک معماری سازمانی می باشد.
بخش 3: دستورالعمل ها و تکنیک های ADM
این بخش شامل مجموعه ای از دستورالعمل ها و تکنیک های قابل دسترس برای استفاده و اعمال بر ADM می باشد.
بخش 4: چارچوب محتوای معماری (Architectural Content Framework)
این بخش، چارچوب محتوای توگف را تشریح می کند، که شامل یک فرا مدل ساختار یافته برای اشیای معماری، استفاده از بخش های سازنده قابل استفاده مجدد معماری (ABB – Architectural Building Blocks ها) و دیدی کلی از خروجی های معمولی معماری می باشد.
بخش 5: زنجیره سازمانی و ابزارها
این بخش طبقه بندی و ابزارهای مناسب برای دسته بندی و ذخیره خروجی های فعالیت معماری در درون یک سازمان را تشریح می کند.
بخش 6: مدل های مرجع توگف (TOGAF Reference Model)
این بخش دو مدل مرجع معماری به نام های مدل مرجع فنی توگف (TRM) و مدل مرجع یکپارچه زیرساخت اطلاعات (III-RM – Integrated Information Infrastructure Reference Model) را ارائه می کند.
بخش 7: چارچوب توانمندی معماری (Architecture Capability Framework)
این بخش سازمان، فرآیندها، مهارت ها، نقش ها و مسئولیت های مورد نیاز برای ایجاد و اجرای یک راهکار عملی معماری در درون سازمان را تشریح می کند.
Forwarded from Hadi
Cloud Computing رایانش ابری
Big Data کلان داده
NFV (Network Function Virtualization) مجازی سازی توابع شبکه
Job کار
Task وظیفه (زیر مجموعه Job)
Data Science علم داده / مهندسى داده
Data Integrity تمامیت داده
Data Validity اعتبار داده
Data Volume حجم داده
Data Variety تنوع داده
Data Volatility نوسان داده
Data Veracity صحت داده
Data Integration یکپارچه سازی داده
Data Aggregation تجمیع داده
Data Visualization مصورسازی داده
Disaster Recovery بازیابی از سوانح/بازیابی از فاجعه
Consistency سازگاری
Interoperability
Secondary ثانویه
Cache حافظه نهان
Storage حافظه ذخیره سازی
Storage Cache حافظه ذخیره سازی نهان
Mirroring آیینه سازی
Mashup سرویس ترکیبی
On Premise درون ملکی / داخل سازمان
Off Premise بیرون سازمان
Cross Cutting Aspects جنبه های مشترک در چند لایه
Forwarded from Hadi
شروع با اوبونتو
اوبونتو برای تازه واردها عنوان راهنمای ساده‌ای‌ست که به منظور شروع کار با اوبونتو نوشته شده. اوبونتو سیستم‌عاملی رایگان و آزاد است که با مشارکت کاربران از سراسر جهان ساخته شده و به عنوان پر استفاده‌ترین توزیع گنو / لینوکس شناخته می‌شود.

تصمیم به استفاده از اوبونتو گرفته‌اید اما نمی‌دانید از کجا شروع کنید؟ «اوبونتو برای تازه‌واردها» تمام اطلاعاتی که برای شروع با اوبونتو نیاز دارید را به همراه دارد.

با این کتاب می‌آموزید:

معرفی اوبونتو و فلسفهٔ نرم‌افزارهای آزاد
نصب اوبونتو از دیسک نوری یا حافظه‌های فلش
توضیح رابطهٔ لینوکس و اوبونتو
تشریح محیط Unity
کارهایی که بعد از نصب اوبونتو باید انجام بدهید
راه‌های نصب نرم‌افزار در اوبونتو
فهرستی از نرم‌افزارهای انحصاری و معادل آزاد آن‌ها در اوبونتو
معرفی ترمینال اوبونتو و معرفی دستورهای ضروری
Forwarded from Hadi
شروع با اوبونتو
اوبونتو برای تازه واردها عنوان راهنمای ساده‌ای‌ست که به منظور شروع کار با اوبونتو نوشته شده. اوبونتو سیستم‌عاملی رایگان و آزاد است که با مشارکت کاربران از سراسر جهان ساخته شده و به عنوان پر استفاده‌ترین توزیع گنو / لینوکس شناخته می‌شود.

تصمیم به استفاده از اوبونتو گرفته‌اید اما نمی‌دانید از کجا شروع کنید؟ «اوبونتو برای تازه‌واردها» تمام اطلاعاتی که برای شروع با اوبونتو نیاز دارید را به همراه دارد.

با این کتاب می‌آموزید:

معرفی اوبونتو و فلسفهٔ نرم‌افزارهای آزاد
نصب اوبونتو از دیسک نوری یا حافظه‌های فلش
توضیح رابطهٔ لینوکس و اوبونتو
تشریح محیط Unity
کارهایی که بعد از نصب اوبونتو باید انجام بدهید
راه‌های نصب نرم‌افزار در اوبونتو
فهرستی از نرم‌افزارهای انحصاری و معادل آزاد آن‌ها در اوبونتو
معرفی ترمینال اوبونتو و معرفی دستورهای ضروری
Forwarded from Hadi
مدل اقتصادی رایانش ابری
اگر چه رایانش ابری در نتیجه همگرایی تعدادی از تکنولوژی اخیر در ارائه سرویس های نرم افزاری و سخت افزاری بوجود آمده است. اما یکی از عوامل اصلی و پیش برنده رایانش ابری، مباحث اقتصادی در ارائه و استفاده از سرویس های فناوری اطلاعات بوده است. در رایانش ابری، سرویس های فناوری اطلاعات می توانند بصورت یک صنعت عمومی نظیر آب، برق، گاز و تلفن به کاربران عرضه شوند و در قبال آن صورتحساب رایانش دریافت نمایند. بعبارت دیگر کاربران بر اساس میزان مصرف خود از سرویس های سخت افزاری و نرم افزاری، هزینه آن را پرداخت می کنند. از دید مصرف کننده، رایانش ابری مدلی برای کاهش هزینه است تا هزینه های سرمایه گذاری به هزینه های عملیاتی تبدیل شود. متعاقبا از سمت سرویس دهنده، مدل های مختلفی برای قیمت گذاری سرویس معرفی می شود تا مشتری بر حسب شرایط خود بتواند از آنها استفاده کند. لازم به ذکر است که مباحث اقتصادی در لایه های مختلف ابر، تا حدودی با همدیگر متفاوت است و در اینجا فعلا قصد داریم به تحلیل اقتصادی سرویس های زیرساخت بپردازیم. بنابراین در ادامه ابتدا ملاحظات اقتصادی از سمت مصرف کننده سرویس زیرساخت رایانش ابری مطرح خواهد شد و پس از آن ملاحظات سمت سرویس دهنده مورد بررسی قرار خواهد گرفت.
Forwarded from Hadi
خدمات محاسبات ابری معمولا دارای مدل مبتنی بر استفاده هستند که در آن پرداخت فقط بازای منابعی که استفاده می‌شود انجام می‌گیرد. در صورتی که نیاز به منابع بیشتری داشته باشید، تا حد ظرفیت ابر می‌توانید دریافت کنید و هزینه آن را پرداخت نمایید. خدماتی نظیرS3 و EC2 آمازون از این مدل قیمت‌گذاری استفاده می‌کنند. از مزایای این نوع قیمت‌گذاری می‌توان به عدم نیاز به سرمایه گذاری اولیه و دسترسی به ظرفیت مورد نیاز در زمان نیاز اشاره کرد. این مزایا باعث می‌شود که از یک سو تنها وقتی نیاز احساس شد، سرویس را تقاضا کرد و از سوی دیگر بتوان یک روز از 100 کاربر و روز دیگر از 10000 کاربر پشتیبانی کرد. به‌عنوان مثال فرض کنید شما نیاز به 100 سرور برای 3 سال دارید. یک روش این است که هر کدام از آنها را ساعتی 0.6 دلار اجاره کنید که تقریبا هزینه¬ای به این شکل خواهد داشت:

100 servers * $0.60 instance-hour * 3 years * 8,760 hours/year = $1,555,200

حال فرض کنید که هر سرور را به قیمت 1500 دلار خریداری کنید. به این ترتیب 2 نفر برای مدیریت و نگهداری شبکه نیاز دارید که فرض می کنیم سالیانه 100000 دلار دستمزد بگیرند. هر یک از سرورها 150 وات مصرف می‌کنند که با هزینه 0.1 دلار بازای هرکیلووات، سالیانه برای این 100 سرور 13140 دلار خواهد شد. سایر هزینه های مربوط به ایجاد زیرساخت مرکز داده (راک، روتر، سوئیچ، اتصالات، سرمایش، پهنای باند و ...) را 500000 دلار فرض می¬کنیم. به این ترتیب خواهیم داشت:


100 servers * $1,500 + 3 years * $13,140 electricity/year + 3 years * 2 staff * $100,000 salary/year + 500,000 $ other costs = $1,289,420

پس اگر قرار باشد که در طول این مدت، از 100 درصد توان سرورها استفاده کنید، خرید 100 سرور مناسب‌تر خواهد بود. ولی اگر از کمتر از 75 درصد توان سرورها استفاده کنید، استفاده از مدل ابری مناسب‌تر خواهد بود. چرا که در این صورت هزینه مورد نیاز، حداقل به میزان 25 درصد کاهش خواهد یافت:

$1,555,200* 0.75% = $1,166,400

لازم به ذکر است که در حالت ابری، این هزینه در طول مدت 3 سال پرداخت خواهد شد ولی در حالت غیرابری، بخش عمده ای از هزینه باید همان ابتدا پرداخت شود. نمودار مقایسه سه حالت فوق در شکل مقابل نشان داده شده است.

اهمیت اصلی رایانش ابری از نظر اقتصادی، مربوط به همین عدم نیاز به سرمایه گذاری اولیه است. اما همانطور که مشاهده می شود، در دراز مدت، اگر منابع به خوبی مدیریت نشوند، مجموع هزینه های ابری بسیار بیشتر خواهد شد.
Forwarded from Hadi
Cloud native applications are service-oriented.

Computing Paradigm Programming Paradigm
:
Mainframe>>>> Imperative
Client/Server >>>>>Object Oriented
Cloud Computing >>>>>Service Oriented
Forwarded from Hadi
Characteristics of Cloud-native Applications

A cloud-native application is composed of multiple services and each service is elastic, resilient, and composable. Let’s dissect this a bit:

The Application is composed of multiple services: what looks like a single application to the end user, for example a Software-as-a-Service (SaaS) human resources application, or a streaming music service, is actually delivered by a set of co-operating services. Clients interact with the application as a whole; typically via a single API. However, internally the application is made up of multiple cooperating services, much like an object-oriented application is made up of multiple cooperating objects.

Each service is elastic: this means that each service can scale-up or scale-down independently of other services. Ideally the scaling is automatic, based on load or other defined triggers. Cloud computing costs are typically based on usage, and being able to dynamically manage scalability in a granular manner enables efficient use of the underlying resources.

Each service is resilient: this means that each service is highly-available and can survive infrastructure failures. This characteristic limits the failure domain, due to software bugs or hardware issues.

Each service is composable: this implies that the service is designed to allow it to be part of other applications. At the minimum, each Service has an Application Programming Interface (API) that is uniform and discoverable, and in addition can have well defined behaviors for registration, discovery, and request management.
Forwarded from Hadi
مجازی سازی جزئی (Para Virtualization)
در گذشته سخت‌افزار x86 از استراتژی های مجازی‌سازی پشتیبانی نمی‌کرد. زیرا پردازش های CPU بطور متفاوت بستگی به این داشت که در حالت privileged باشد یا نه و یک پردازنده مجازی شده نمی‌توانست در حالت privileged کار کند (زیرا اولویت بالاتر از پردازنده فیزیکی بدست می‌آورد و باعث یک ریسک امنیتی می شد). به همین علت، نرم‌افزار مجازی‌سازی باید با دستورات از ماشین مهمان کار می‌کرد و آنها را با مجموعه دستورات جدیدی جایگزین می‌کرد که مطمئن باشد به درستی توسط سخت‌افزار ماشین فیزیکی خوانده می‌شود. در نتیجه بازنویسی دستورالعمل‌ها از پردازنده ماشین مجازی مهمان سربار زیادی را ایجاد می‌کرد که باعث می‌شد کارها کند انجام شود. Para-virtualization یک تغییر در سیستم عامل بود (معمولا در سطح هسته) بطوریکه بیشتر شبیه سخت‌افزار واقعی در ماشین فیزیکی شود و کارآیی بیشتری در مجازی‌سازی بدست بیاید. اگرچه راه‌حل Para-virtualization کاملا کارآمد است، اما سیستم عامل های کمی از آن پشتیبانی می‌کنند، که این مشکل اصلی آن است.
Forwarded from Hadi
(Hardware assisted Virtualization)
این نوع دوم راه‌حل مجازی‌سازی است که اکثر سیستم عامل های مبتنی بر لینوکس از آن استفاده می‌کنند. برای استفاده از این تکنولوژی یا باید پردازنده مجهز به Intel VT یا پردازنده مجهز به AMD-V در اختیار داشت تا بتوان ویژگی مورد نظر را در آنها فعال کرد. با استفاده از این پردازنده‌ها، دستورات می‌توانند بدون هیچگونه جایگزینی از ماشین مجازی مهمان خوانده شوند. واضح است که این روش نسبت به حالت جایگزینی دستورالعمل‌ها کارآمدتر است و سیستم‌های عامل ها بدون تغییر می‌توانند روی ماشین‌های مجازی نصب شوند، زیرا پردازنده فیزیکی می‌تواند با دستورالعمل‌های پردازنده‌های مجازی کار کند (بجای اینکه با هسته سیستم عامل کار کند). در حال حاضر دو تکنولوژی مبتنی بر لینوکس وجود دارد که هر دوی آنها مجازی‌سازی کامل سخت‌افزاری را انجام داده‌اند. این دو تکنولوژی Xen و KVM نام دارند.
Forwarded from Hadi
حامل ها (Containers)
از این تکنولوژی تحت عنوان مجازی‌سازی در سطح سیستم عامل نیز نام می‌برند و در حقیقت یک راه‌حل مجازی‌سازی نیست. Container ها محیط‌های کاربر مجزا هستند اما همه در یک هسته واحد اجرا می‌شوند. به این معنا که آنها بطور کامل از هم مجزا نیستند. اما نکته خوب آنها این است که container ها کمترین سربار را در مقایسه با راه‌حل‌های مجازی‌سازی تحمیل می‌کنند، زیرا نیازی نیست که کل هسته، پردازنده‌ها و... را شبیه‌سازی کنند. توزیع‌های مختلف لینوکس می‌توانند در container های مختلف نصب شوند که یک مزیت خوب دیگر برای آنهاست.

همانطور که مشاهده کردید، تکنولوژی‌های مبتنی بر لینوکس مختلفی وجود دارد. مجازی‌سازی واقعی بدست نمی‌آید مگر با روش های سخت‌افزاری. در عین حال container ها هم می‌توانند در جای خود برای سازمان‌های کوچک یا کاربران خانگی برای ایجاد فضاهای کاری مختلف در ماشین فیزیکی شان، بدون نیاز به سایر روش های مجازی‌سازی و هدر دادن بخشی از منابع خود استفاده شوند.
Forwarded from Hadi
مجازی سازی میزکار ( Desktop Virtualization)
مجازی‌سازی محیط کار (Desktop) در سیستم‌های کاربران نهایی انجام می‌شود. این کار باعث می‌شود تا مدیران بهتر ماشین‌های کاربران نهایی را مدیریت کنند و محیط مربوط هر کاربر را از راه دور سفارشی کنند. امروزه دو نوع از مجازی‌سازی Desktop وجود دارد. یکی از آنها Client-Hosted Desktop Virtualization است و دیگری VDI نام دارد.
Forwarded from Hadi
مجازی سازی نرم افزار (Software Virtualization)
مجازی‌سازی نرم‌افزار نوعی دیگر از مجازی‌سازی برنامه کاربردی یا برنامه‌های رایانه‌ است. تفاوت عمده بین مجازی‌سازی نرم‌افزار و مجازی‌سازی برنامه کاربردی این است که در مجازی سازی برنامه‌های کاربردی، اجرای برنامه مجازی می‌شود ولی در مجازی سازی نرم‌افزار منابع مورد استفاده برنامه نیز مجازی می‌شوند. یکی از رایج ترین این نمونه برنامه‌ها، SVS است که توسط Altiris توسعه داده شده است. این مفهوم مشابه Hardware virtualization است که در آن ماشین فیزیکی بصورت یک ماشین مجازی شبیه‌سازی می‌شود. مجازی‌سازی نرم‌افزار شامل ایجاد یک لایه مجازی یا فضای دیسک سخت مجازی است که برنامه بتواند در آن نصب شود. از این فضای مجازی، برنامه‌ها می‌توانند همانند برنامه‌های عادی که روی سیستم عامل میزبان نصب شده است، اجرا شوند.

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

امکان اجرای برنامه‌های کاربردی بدون تغییر دائمی رجیستری یا کتابخانه ها
امکان اجرای چندین نسخه از یک برنامه یکسان
امکان نصب برنامه‌هایی که ممکن است با همدیگر تداخل داشته باشند (با ایجاد چندین لایه مجازی)
امکان تست برنامه‌های جدید در یک محیط ایزوله شده و مجزا
مجازی‌سازی نرم‌افزاری مزایای زیادی دارد و به سادگی پیاده‌سازی می‌شود. یک مزیت جالب این است که شما می‌توانید مجازی‌سازی نرم‌افزاری را خودتان با دریافت و نصب برنامه Altiris SVS بطور کاملا رایگان امتحان کنید.
Forwarded from Hadi
مجازی سازی ذخیره سازی (Storage Virtualization)
مجازی‌سازی ذخیره‌سازی شامل مجازی‌سازی تجهیزات ذخیره‌سازی فیزیکی است. این تکنیکی است که به کاربران و برنامه‌های کاربردی مختلف این امکان را می‌دهد تا بدون در نظر داشتن محل تجهیزات ذخیره‌سازی و نوع آنها، بتوانند به آن ها دسترسی داشته باشند. وقتی ذخیره‌سازی مجازی می‌شود، همانند یک حافظه استاندارد و محلی برای ماشین‌های میزبان مشاهده می‌شود، حتی اگر این فضای ذخیره‌سازی بصورت توزیع شده در مکان‌های مختلف قرار داشته باشد و از انواع مختلف باشد.

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

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

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