<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های مجتبی خدادوست</title>
        <link>https://virgool.io/feed/@mshtba</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-18 10:25:25</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>مجتبی خدادوست</title>
            <link>https://virgool.io/@mshtba</link>
        </image>

                    <item>
                <title>شناسایی گره‌های مهم در شبکه‌های پیچیدۀ پویا</title>
                <link>https://virgool.io/@mshtba/%D8%B4%D9%86%D8%A7%D8%B3%D8%A7%DB%8C%DB%8C-%DA%AF%D8%B1%D9%87-%D9%87%D8%A7%DB%8C-%D9%85%D9%87%D9%85-%D8%AF%D8%B1-%D8%B4%D8%A8%DA%A9%D9%87-%D9%87%D8%A7%DB%8C-%D9%BE%DB%8C%DA%86%DB%8C%D8%AF%DB%80-%D9%BE%D9%88%DB%8C%D8%A7-fo1ypn6yftzr</link>
                <description>چکیدهاین مقاله به بررسی شناسایی گره‌های بحرانی در شبکه‌های پیچیده می‌پردازد و معیارهای مختلفی را که برای انواع مختلف شبکه‌ها و اهداف خاص حیاتی هستند، مورد بررسی قرار می‌دهد. با بررسی مطالعات اخیر و معتبر، تلاش می‌شود تا رابطه‌ای بین این معیارها و اثربخشی آن‌ها در تعیین گره‌های بحرانی ایجاد شود. تحلیل ما شامل چندین معیار مرکزی از جمله مرکزیت درجه، مرکزیت بینابینی، مرکزیت نزدیکی و مرکزیت ویژه‌برداری است. کاربردهای عملی در شبکه‌های اجتماعی، زیستی و زیرساختی موردبحث قرار می‌گیرند تا اهمیت این معیارها در سناریوهای واقعی را نشان دهند. این بررسی نشان می‌دهد که ترکیب روش‌های یادگیری نمایشی گراف و سیستم‌های رتبه‌بندی چندمعیاری می‌تواند دقت و کارایی شناسایی گره‌های بحرانی را بهبود بخشد.کلمات کلیدی: شبکه‌های پیچیده، گره‌های مهم، مرکزیت1. مقدمهشبکه‌های پیچیده در طبیعت و سیستم‌های انسانی فراگیر هستند و کاربردهای گسترده‌ای از سیستم‌های زیستی تا شبکه‌های اجتماعی، سیستم‌های حمل‌ونقل و زیرساخت‌های ارتباطی دارند. درک ساختار و دینامیک این شبکه‌ها برای بهینه‌سازی عملکرد، استحکام و مقاومت آن‌ها در برابر خرابی‌ها بسیار مهم است. یکی از جنبه‌های اساسی مطالعه شبکه‌های پیچیده، شناسایی گره‌های بحرانی است؛ گره‌هایی که خرابی آن‌ها می‌تواند به طور قابل‌توجهی عملکرد شبکه را مختل کند. این کار شامل روش‌ها و معیارهای مختلفی است که هر کدام برای انواع مختلف شبکه‌ها و اهداف خاص مناسب هستند.مطالعه شبکه‌های پیچیده در دهه‌های اخیر به طور قابل‌توجهی تکامل‌یافته است که این امر ناشی از پیچیدگی روزافزون سیستم‌ها و دردسترس‌بودن داده‌های بزرگ‌مقیاس است. روش‌های سنتی بر معیارهای ساده‌ای مانند مرکزیت درجه متمرکز بودند که تعداد ارتباطات مستقیم یک گره را اندازه‌گیری می‌کند. گره‌هایی با مرکزیت درجه بالا معمولاً به‌عنوان گره‌های مهم شناخته می‌شوند؛ زیرا به طور مستقیم بر بسیاری از گره‌های دیگر تأثیر می‌گذارند. بااین‌حال، این معیار به‌تنهایی برای درک نقش‌های دقیق مختلف گره‌ها در شبکه کافی نیست [1][2].معیارهای پیچیده‌تری مانند مرکزیت بینابینی که میزان قرارگیری یک گره در مسیرهای کوتاه‌بین سایر گره‌ها را ارزیابی می‌کند، فهم عمیق‌تری از نقش یک گره در تسهیل ارتباطات در سراسر شبکه فراهم می‌کند. گره‌هایی با مرکزیت بینابینی بالا به‌عنوان پل‌ها یا گلوگاه‌ها عمل می‌کنند؛ خرابی آن‌ها می‌تواند شبکه را به اجزای غیرمتصل تقسیم کند و به طور قابل‌توجهی بر اتصال کلی تأثیر بگذارد [3][4][5].این موضوع به ویژه در شبکه‌های حمل‌ونقل اهمیت دارد، جایی که اختلال در یک مرکز اصلی (مثلاً یک فرودگاه بزرگ) می‌تواند منجر به تأخیرها و لغوهای گسترده سفر شود [6].مرکزیت نزدیکی معیار مهم دیگری است که نشان می‌دهد یک گره چقدر به سایر گره‌های شبکه نزدیک است. گره‌هایی با مرکزیت نزدیکی بالا می‌توانند اطلاعات یا منابع را به‌سرعت در سراسر شبکه پخش کنند. این معیار به‌ویژه در شرایطی که انتشار سریع اطلاعات حیاتی است، مانند سیستم‌های پاسخ اضطراری که اطلاعات در مورد بحران باید به‌سرعت به‌تمامی افراد مربوطه منتقل شود، حائز اهمیت است [7][8][9].مرکزیت ویژه‌برداری مفهوم اهمیت گره را با درنظرگرفتن نه‌تنها تعداد اتصالات یک گره بلکه کیفیت آن اتصالات گسترش می‌دهد. گره‌ای که به بسیاری از گره‌های خوب متصل شده است، تأثیر بیشتری نسبت به گره‌ای با همان تعداد اتصالات به همسایگان کمتر متصل دارد. این معیار به‌ویژه در شبکه‌های اجتماعی مفید است، جایی که افراد متصل به سایر افراد تأثیرگذار تأثیر بیشتری در انتشار اطلاعات دارند [10] [11] [12].در سال‌های اخیر، توسعه روش‌های پیچیده‌تر و محاسباتی‌تر مانند یادگیری نمایشی گراف و سیستم‌های رتبه‌بندی چندمعیاری، توانایی ما را در شناسایی گره‌های بحرانی بیشتر کرده است. یادگیری نمایشی گراف شامل تعبیه گره‌ها در فضای کم بعدتر در حالی است که خواص ساختاری آن‌ها را حفظ می‌کند که امکان استفاده از تکنیک‌های یادگیری ماشین برای شناسایی گره‌های مؤثر را فراهم می‌کند [13] [14]. سیستم‌های رتبه‌بندی چندمعیاری چندین معیار مرکزی را برای ارائه ارزیابی جامع‌تر از اهمیت گره‌ها ترکیب می‌کنند و عواملی مانند ضریب خوشه‌بندی محلی و تفکیک درجه ترکیبی را در نظر می‌گیرند [2] [16] [17].کاربردهای عملی این روش‌ها گسترده و متنوع است. در شبکه‌های اجتماعی، شناسایی افراد تأثیرگذار می‌تواند به حداکثر رساندن انتشار اطلاعات کمک کند که برای استراتژی‌های بازاریابی و کمپین‌های آگاهی عمومی حیاتی است [18][19]. در شبکه‌های زیستی، درک گره‌های بحرانی می‌تواند بینشی درباره پروتئین‌ها یا ژن‌های کلیدی که در مسیرهای متابولیک یا انتشار بیماری نقش دارند، ارائه دهد و به اهداف دارویی و مداخلات درمانی کمک کند [20][21][22]. در شبکه‌های زیرساختی مانند شبکه‌های برق و سیستم‌های حمل‌ونقل، اطمینان از استحکام گره‌های بحرانی می‌تواند مقاومت این سیستم‌ها در برابر خرابی‌ها و حملات را افزایش دهد و تداوم خدمات را حفظ کند [23][24][25].علی‌رغم پیشرفت‌های حاصل شده، چالش‌هایی در شناسایی گره‌های بحرانی، به‌ویژه در شبکه‌های بزرگ و پویا وجود دارد. پیچیدگی محاسباتی یکی از موانع اصلی است، زیرا بسیاری از الگوریتم‌ها برای محاسبه معیارهای مرکزی محاسباتی هستند و ممکن است با افزایش اندازه شبکه به‌خوبی مقیاس نشوند. علاوه بر این، ماهیت پویا بسیاری از شبکه‌ها به این معنی است که اهمیت گره‌ها می‌تواند باگذشت زمان تغییر کند و نیاز به نظارت مستمر و به‌روزرسانی ارزیابی‌های گره‌های بحرانی وجود دارد [26][27][28].همچنین، ماهیت خاص به زمینه اهمیت گره‌ها به این معنی است که هیچ معیار واحدی نمی‌تواند به طور جهانی گره‌های بحرانی را در تمام انواع شبکه‌ها شناسایی کند. به‌عنوان‌مثال، درحالی‌که مرکزیت درجه ممکن است برای شناسایی گره‌های بحرانی در یک شبکه ثابت و بدون جهت کافی باشد، ممکن است برای شبکه‌های پویا یا جهت‌دار معیارهای پیچیده‌تری مانند مرکزیت بینابینی یا مرکزیت ویژه‌برداری لازم باشد. این موضوع نیاز به رویکردی دقیق‌تر را که ویژگی‌ها و نیازهای خاص هر شبکه را در نظر بگیرد، برجسته می‌کند [29] [30][31].در نتیجه، شناسایی گره‌های بحرانی در شبکه‌های پیچیده یک مشکل چندوجهی است که نیاز به ترکیب معیارها و روش‌های مختلف دارد. با افزایش پیچیدگی و مقیاس شبکه‌ها، توسعه روش‌های پیچیده‌تر و مقیاس‌پذیرتر ضروری خواهد بود. این مقاله تلاش می‌کند تا یک مرور جامع از وضعیت فعلی تحقیقات در این حوزه ارائه دهد و نقاط قوت و محدودیت‌های رویکردهای مختلف و کاربردهای عملی آن‌ها در حوزه‌های مختلف را برجسته کند.2. کارهای مرتبطشناسایی گره‌های بحرانی در شبکه‌های پیچیده یک حوزه پژوهشی پررونق است که توجه زیادی از سوی محققان مختلف به خود جلب کرده است. در این مقاله، به بررسی برخی از مهم‌ترین کارهای انجام شده و روش‌های مختلفی که برای شناسایی این گره‌ها استفاده شده‌اند، می‌پردازیم.3. معیارهای مرکزیتیکی از اولین و ساده‌ترین روش‌های شناسایی گره‌های بحرانی استفاده از معیارهای مرکزیت است. مرکزیت درجه یکی از این معیارهاست که تعداد ارتباطات مستقیم یک گره را محاسبه می‌کند. گره‌هایی با درجه بالا معمولاً به عنوان گره‌های مهم شناخته می‌شوند زیرا ارتباطات زیادی با سایر گره‌ها دارند [2][14]. با این حال، این معیار به تنهایی کافی نیست و نمی‌تواند نقش‌های پیچیده‌تری که گره‌ها ممکن است در شبکه داشته باشند را به خوبی نمایان کند [5][18].مرکزیت بینابینی یکی دیگر از معیارهای مهم است که میزان قرارگیری یک گره در مسیرهای کوتاه بین سایر گره‌ها را ارزیابی می‌کند. گره‌هایی با مرکزیت بینابینی بالا ببه‌عنوانپل‌ها یا گلوگاه‌ها عمل می‌کنند؛ خرابی آن‌ها می‌تواند شبکه را به اجزای غیرمتصل تقسیم کند و به طور قابل توجهی بر اتصال کلی تأثیر بگذارد [3][7]. به عنوان مثال، در یک شبکه حمل و نقل مانند شبکه‌های هوایی، از دست دادن یک فرودگاه با مرکزیت بینابینی بالا می‌تواند منجر به اختلالات گسترده در سفرها شود [1][11].مرکزیت نزدیکی نیز معیاری مهم است که نشان می‌دهد یک گره چقدر به سایر گره‌های شبکه نزدیک است. گره‌هایی با مرکزیت نزدیکی بالا می‌توانند اطلاعات یا منابع را به سرعت در سراسر شبکه پخش کنند. این معیار به ویژه در شرایطی که انتشار سریع اطلاعات حیاتی است، مانند سیستم‌های پاسخ اضطراری که اطلاعات در مورد بحران باید به سرعت به تمامی افراد مربوطه منتقل شود، حائز اهمیت است [6][2][20].مرکزیت ویژه‌برداری مفهوم اهمیت گره را با در نظر گرفتن نه تنها تعداد اتصالات یک گره بلکه کیفیت آن اتصالات گسترش می‌دهد. گره‌ای که به بسیاری از گره‌های خوب متصل شده است، تأثیر بیشتری نسبت به گره‌ای با همان تعداد اتصالات به همسایگان کمتر متصل دارد. این معیار به ویژه در شبکه‌های اجتماعی مفید است، جایی که افراد متصل به سایر افراد تأثیرگذار تأثیر بیشتری در انتشار اطلاعات دارند [4][10][22].4. روش‌شناسیبرای شناسایی گره‌های بحرانی در شبکه‌های پیچیده، روش‌های مختلفی از جمله تحلیل معیارهای مرکزی، یادگیری نمایشی گراف، و سیستم‌های رتبه‌بندی چندمعیاری مورد استفاده قرار می‌گیرند. در ادامه، به تشریح هر یک از این روش‌ها و نحوه اجرای آن‌ها می‌پردازیم.5. تحلیل معیارهای مرکزییکی از روش‌های پایه‌ای برای شناسایی گره‌های بحرانی، تحلیل معیارهای مرکزی است. این تحلیل شامل معیارهای مختلفی مانند مرکزیت درجه، مرکزیت بینابینی، مرکزیت نزدیکی و مرکزیت ویژه‌برداری می‌شود. هر یک از این معیارها نقش خاصی در شبکه ایفا می‌کنند و برای اهداف مختلف مناسب هستند.5-1. مرکزیت درجهاین معیار تعداد ارتباطات مستقیم هر گره را محاسبه می‌کند. برای شبکه‌های اجتماعی، گره‌هایی با درجه بالا می‌توانند به عنوان افراد تأثیرگذار شناسایی شوند که قادر به انتشار سریع اطلاعات هستند [1][14].5-2. مرکزیت بینابینیاین معیار به ارزیابی گره‌ها بر اساس قرارگیری در مسیرهای کوتاه بین سایر گره‌ها می‌پردازد. در شبکه‌های حمل‌ونقل، این معیار می‌تواند گره‌هایی را که به عنوان پل‌های حیاتی عمل می‌کنند، شناسایی کند [3][7]. به عنوان مثال، در یک شبکه حمل و نقل مانند شبکه‌های هوایی، از دست دادن یک فرودگاه با مرکزیت بینابینی بالا می‌تواند منجر به اختلالات گسترده در سفرها شود [1][11].5-3. مرکزیت نزدیکیاین معیار نشان می‌دهد که یک گره چقدر به سایر گره‌های شبکه نزدیک است. گره‌هایی با مرکزیت نزدیکی بالا می‌توانند اطلاعات یا منابع را به سرعت در سراسر شبکه پخش کنند. این معیار به ویژه در شرایطی که انتشار سریع اطلاعات حیاتی است، مانند سیستم‌های پاسخ اضطراری که اطلاعات در مورد بحران باید به سرعت به تمامی افراد مربوطه منتقل شود، حائز اهمیت است [6][2][20].5-4. مرکزیت ویژه‌برداریاین معیار تأثیر گره‌ها را بر اساس کیفیت اتصالات آن‌ها ارزیابی می‌کند. در شبکه‌های اجتماعی، گره‌هایی که به سایر گره‌های تأثیرگذار متصل هستند، اهمیت ویژه‌ای دارند [4][10][22].6. یادگیری نمایشی گرافیادگیری نمایشی گراف شامل استفاده از تکنیک‌های یادگیری ماشین برای تعبیه گره‌ها در فضای کم‌بعدتر است، به طوری که خواص ساختاری آن‌ها حفظ شود. این تکنیک امکان تحلیل پیچیده‌تر و دقیق‌تر شبکه‌ها را فراهم می‌کند. مراحل کلیدی این روش شامل موارد زیر است:6-1. استخراج ویژگی‌هاویژگی‌های مختلف هر گره مانند درجه، ضریب خوشه‌بندی، و اطلاعات همسایگان استخراج می‌شوند [9][13]. اولین مرحله در یادگیری نمایشی گراف، استخراج ویژگی‌های مختلف هر گره است. این ویژگی‌ها می‌توانند شامل درجه گره، ضریب خوشه‌بندی، و اطلاعات مربوط به همسایگان گره باشند. استخراج دقیق و کامل این ویژگی‌ها اهمیت زیادی دارد، زیرا این ویژگی‌ها پایه و اساس تعبیه گره‌ها و آموزش مدل را تشکیل می‌دهند. برای مثال، در یک شبکه اجتماعی، ویژگی‌هایی مانند تعداد دوستان، تعداد ارتباطات مستقیم و ضریب خوشه‌بندی می‌توانند به عنوان ویژگی‌های کلیدی گره‌ها استخراج شوند.6-2. تعبیه گره‌هاگره‌ها در یک فضای برداری کم‌بعدتر تعبیه می‌شوند به طوری که ساختار اصلی شبکه حفظ شود [14][17]. این تعبیه به مدل‌های یادگیری ماشین کمک می‌کند تا با داده‌های پیچیده و بزرگتر به صورت مؤثرتری کار کنند. فرایند تعبیه به گونه‌ای انجام می‌شود که گره‌هایی که به لحاظ ساختاری مشابه هستند، در فضای برداری کم‌بعدتر نیز نزدیک به هم قرار گیرند. این مرحله می‌تواند شامل استفاده از تکنیک‌های مختلفی مانند گراف کانولوشنال شبکه‌ها (GCNs) یا تعبیه‌های برداری باشد.6-3. آموزش مدلمدل‌های یادگیری ماشین با استفاده از داده‌های تعبیه‌شده آموزش داده می‌شوند تا گره‌های بحرانی را شناسایی کنند [9][19]. در این مرحله، مدل‌های مختلفی مانند شبکه‌های عصبی، ماشین‌های بردار پشتیبان و دیگر الگوریتم‌های یادگیری ماشین می‌توانند مورد استفاده قرار گیرند. هدف اصلی این مرحله، آموزش مدل برای شناسایی و طبقه‌بندی گره‌های بحرانی بر اساس ویژگی‌های استخراج شده و تعبیه‌شده است. برای مثال، در یک شبکه زیستی، مدل می‌تواند برای شناسایی ژن‌های کلیدی که نقش مهمی در فرآیندهای زیستی ایفا می‌کنند، آموزش داده شود.6-4. ارزیابی مدلدقت و کارایی مدل با استفاده از معیارهای مختلف ارزیابی می‌شود [11][18]. ارزیابی مدل می‌تواند شامل استفاده از معیارهایی مانند دقت، فراخوان و دیگر معیارهای عملکرد باشد. این مرحله اهمیت زیادی دارد زیرا عملکرد نهایی مدل و قابلیت آن در شناسایی گره‌های بحرانی را نشان می‌دهد. ارزیابی مدل به پژوهشگران کمک می‌کند تا نقاط قوت و ضعف مدل را شناسایی کرده و در صورت لزوم بهبودهای لازم را انجام دهند. به عنوان مثال، در یک شبکه حمل‌ونقل، ارزیابی مدل می‌تواند نشان دهد که مدل چقدر قادر است گره‌های کلیدی که خرابی آن‌ها می‌تواند منجر به اختلالات گسترده شود را به درستی شناسایی کند.7. سیستم‌های رتبه‌بندی چندمعیاریسیستم‌های رتبه‌بندی چندمعیاری شامل ترکیب چندین معیار مرکزی برای ارائه یک ارزیابی جامع‌تر از اهمیت گره‌ها هستند. این سیستم‌ها معمولاً از الگوریتم‌های بهینه‌سازی چندهدفه استفاده می‌کنند که در آن‌ها اهداف مختلفی مانند حداکثرسازی پایداری شبکه و مینیمم‌سازی هزینه محاسباتی در نظر گرفته می‌شوند. مراحل کلیدی این روش شامل موارد زیر است:7-1. تعریف معیارهامعیارهای مختلفی مانند درجه، بینابینی، نزدیکی و ویژه‌برداری به عنوان ورودی سیستم تعریف می‌شوند [2][20]. این معیارها می‌توانند شامل مرکزیت درجه، مرکزیت بینابینی، مرکزیت نزدیکی و مرکزیت ویژه‌برداری باشند. هر یک از این معیارها نقش خاصی در ارزیابی اهمیت گره‌ها در شبکه دارند و ترکیب آن‌ها می‌تواند به ارائه یک تصویر جامع‌تر از شبکه کمک کند. به عنوان مثال، در یک شبکه اجتماعی، مرکزیت درجه می‌تواند نشان‌دهنده تعداد اتصالات مستقیم یک گره باشد، در حالی که مرکزیت بینابینی نشان‌دهنده نقش گره در تسهیل ارتباطات بین سایر گره‌ها است.7-2. ترکیب معیارهایک مدل ترکیبی برای ادغام معیارهای مختلف و ارائه یک نمره کلی برای هر گره ایجاد می‌شود [12][21]. این مدل می‌تواند با استفاده از تکنیک‌های مختلفی مانند تحلیل چندمتغیره یا مدل‌های آماری ایجاد شود. هدف اصلی این مرحله، ایجاد یک شاخص ترکیبی است که بتواند اهمیت کلی هر گره را با توجه به معیارهای مختلف ارزیابی کند. برای مثال، در یک شبکه حمل‌ونقل، ترکیب معیارهای مختلف می‌تواند به شناسایی نقاط ضعف و گره‌های بحرانی کمک کند که نیاز به تقویت دارند.7-3. بهینه‌سازیالگوریتم‌های بهینه‌سازی برای یافتن بهترین ترکیب از معیارها و شناسایی گره‌های بحرانی استفاده می‌شوند [8][16]. این الگوریتم‌ها می‌توانند به صورت تک‌هدفه یا چندهدفه باشند و هدف آن‌ها حداکثرسازی پایداری شبکه و مینیمم‌سازی هزینه محاسباتی است. به عنوان مثال، در یک شبکه برق، الگوریتم‌های بهینه‌سازی می‌توانند به شناسایی گره‌هایی که با تقویت آن‌ها می‌توان پایداری شبکه را بهبود بخشید، کمک کنند.7-4. تحلیل حساسیتتحلیل حساسیت برای بررسی تأثیر تغییرات در وزن‌دهی معیارها بر نتایج نهایی انجام می‌شود [13][25]. این مرحله اهمیت زیادی دارد زیرا می‌تواند نشان دهد که چگونه تغییرات در اهمیت هر معیار می‌تواند بر شناسایی گره‌های بحرانی تأثیر بگذارد. این تحلیل به پژوهشگران کمک می‌کند تا نقاط قوت و ضعف مدل را شناسایی کرده و بهبودهای لازم را انجام دهند. به عنوان مثال، در یک شبکه زیستی، تحلیل حساسیت می‌تواند نشان دهد که کدام معیارها بیشترین تأثیر را در شناسایی ژن‌های کلیدی دارند.8. مطالعات موردی و کاربردهای عملیکاربردهای عملی این روش‌ها گسترده و متنوع است. در شبکه‌های اجتماعی، شناسایی افراد تأثیرگذار می‌تواند به حداکثر رساندن انتشار اطلاعات کمک کند، که برای استراتژی‌های بازاریابی و کمپین‌های آگاهی عمومی حیاتی است [8][19]. در شبکه‌های زیستی، درک گره‌های بحرانی می‌تواند بینشی درباره پروتئین‌ها یا ژن‌های کلیدی که در مسیرهای متابولیک یا انتشار بیماری نقش دارند، ارائه دهد و به اهداف دارویی و مداخلات درمانی کمک کند [17][23][28]. در شبکه‌های زیرساختی مانند شبکه‌های برق و سیستم‌های حمل‌ونقل، اطمینان از استحکام گره‌های بحرانی می‌تواند مقاومت این سیستم‌ها در برابر خرابی‌ها و حملات را افزایش دهد و تداوم خدمات را حفظ کند [24][26][31].9. شبکه‌های اجتماعیشبکه‌های اجتماعی مانند فیس‌بوک، توییتر و اینستاگرام، که میلیون‌ها کاربر را به هم متصل می‌کنند، به عنوان نمونه‌هایی از شبکه‌های پیچیده در نظر گرفته می‌شوند. در این شبکه‌ها، شناسایی گره‌های بحرانی می‌تواند به انتشار سریع و گسترده اطلاعات و افزایش تأثیرگذاری افراد کمک کند. معیارهای درجه و مرکزیت ویژه‌برداری از اهمیت ویژه‌ای برخوردارند.9-1. هدفحداکثرسازی انتشار اطلاعات و افزایش تأثیرگذاری.9-2. معیار های کلیدی9-2-1. مرکزیت درجهگره‌هایی با تعداد زیادی ارتباط مستقیم با سایر گره‌ها، قادر به انتشار سریع اطلاعات هستند [1][14][19]. مرکزیت درجه یکی از ساده‌ترین و در عین حال مهم‌ترین معیارها برای شناسایی گره‌های بحرانی در شبکه‌های اجتماعی است. گره‌هایی با تعداد زیادی ارتباط مستقیم با سایر گره‌ها، به دلیل تعداد بالای اتصالات خود، قادر به انتشار سریع اطلاعات هستند. این گره‌ها معمولاً به عنوان &quot;هاب&quot; در شبکه شناخته می‌شوند. در واقع، این گره‌ها نقش اصلی در انتشار اولیه اطلاعات و پیام‌ها دارند، چرا که با اتصالات متعدد خود به سرعت می‌توانند اطلاعات را به بخش‌های مختلف شبکه منتقل کنند. به عنوان مثال، در یک شبکه اجتماعی مانند توییتر، کاربرانی که فالوئرهای زیادی دارند، می‌توانند به سرعت اطلاعات را به تعداد زیادی از کاربران منتقل کنند. این ویژگی به ویژه در زمان بحران‌ها یا رویدادهای مهم اجتماعی که نیاز به انتشار سریع اطلاعات وجود دارد، بسیار حائز اهمیت است.9-2-2. مرکزیت ویژه‌برداریگره‌هایی که به سایر گره‌های تأثیرگذار متصل هستند، نقش مهمی در شبکه‌های اجتماعی ایفا می‌کنند [4][10][22]. مرکزیت ویژه‌برداری نقش گره‌ها را با در نظر گرفتن کیفیت اتصالات آن‌ها ارزیابی می‌کند. گره‌هایی که به سایر گره‌های تأثیرگذار متصل هستند، می‌توانند نقش مهمی در شبکه‌های اجتماعی ایفا کنند. این معیار نشان می‌دهد که ارتباط با افراد تأثیرگذار می‌تواند به انتشار اطلاعات به صورت وسیع‌تر و با تأثیرگذاری بیشتر کمک کند. به عبارت دیگر، گره‌هایی با مرکزیت ویژه‌برداری بالا، اغلب به عنوان محورهای اصلی شبکه شناخته می‌شوند. این گره‌ها با اتصال به سایر افراد تأثیرگذار، می‌توانند موج‌های اطلاعاتی بزرگی ایجاد کنند و بر افکار عمومی تأثیرگذار باشند. به عنوان مثال، در شبکه‌های اجتماعی مانند اینستاگرام، افرادی که به سایر افراد مشهور و تأثیرگذار متصل هستند، می‌توانند پیام‌های تبلیغاتی یا اجتماعی را به صورت گسترده‌تری منتشر کنند.شناسایی گره‌های بحرانی در شبکه‌های اجتماعی با استفاده از معیارهای مختلف مرکزی می‌تواند به بهبود کارآیی و اثربخشی شبکه‌ها کمک کند. مرکزیت درجه، مرکزیت ویژه‌برداری، مرکزیت بینابینی و مرکزیت نزدیکی هر کدام نقش خاصی در انتشار اطلاعات و تأثیرگذاری در شبکه‌های اجتماعی دارند. با توجه به ویژگی‌های منحصر به فرد هر یک از این معیارها، استفاده ترکیبی از آن‌ها می‌تواند به ارائه یک ارزیابی جامع‌تر و دقیق‌تر از اهمیت گره‌ها در شبکه‌های اجتماعی منجر شود. این ارزیابی‌ها می‌تواند به برنامه‌ریزی‌های استراتژیک و بهبود فرآیندهای تصمیم‌گیری در مدیریت شبکه‌های اجتماعی کمک کند.10. شبکه‌های زیستیشبکه‌های زیستی مانند شبکه‌های پروتئین-پروتئین و ژنومی، که شامل ارتباطات بین مولکول‌ها و ژن‌ها هستند، نقش مهمی در درک فرآیندهای زیستی و بیماری‌ها دارند. در این شبکه‌ها، مرکزیت بینابینی و مرکزیت نزدیکی برای شناسایی پروتئین‌ها یا ژن‌های کلیدی که در مسیرهای بیوشیمیایی و انتشار بیماری نقش دارند، اهمیت دارد.10-1. هدفشناسایی نقاط کلیدی برای مداخلات درمانی و بهبود درک از مسیرهای زیستی.10-2. معیار های کلیدی10-2-1. مرکزیت بینابینیشناسایی پروتئین‌ها یا ژن‌هایی که در مسیرهای بحرانی قرار دارند و حذف آن‌ها می‌تواند ساختار کلی شبکه را به شدت مختل کند [7][10][20]. این گره‌ها به عنوان پل‌های کلیدی در مسیرهای بیوشیمیایی عمل می‌کنند و حذف آن‌ها می‌تواند ساختار کلی شبکه را به شدت مختل کند. برای مثال، یک پروتئین با مرکزیت بینابینی بالا ممکن است نقش حیاتی در تنظیم یک مسیر متابولیکی خاص داشته باشد و حذف آن می‌تواند منجر به اختلالات جدی در عملکرد سلولی شود. از این رو، شناسایی و هدف‌گیری این پروتئین‌ها می‌تواند به توسعه درمان‌های جدید و مؤثر برای بیماری‌های مختلف کمک کند.10-2-2. مرکزیت نزدیکیگره‌هایی که سریع‌تر از دیگران به سایر گره‌ها دسترسی دارند و می‌توانند اطلاعات را به سرعت پخش کنند [6][2][20]. مرکزیت نزدیکی به ارزیابی گره‌هایی می‌پردازد که سریع‌تر از دیگران به سایر گره‌ها دسترسی دارند و می‌توانند اطلاعات را به سرعت پخش کنند. در شبکه‌های زیستی، گره‌هایی با مرکزیت نزدیکی بالا قادرند تأثیرات گسترده‌ای بر انتشار سیگنال‌های زیستی و تغییرات سلولی داشته باشند. به عنوان مثال، یک ژن با مرکزیت نزدیکی بالا می‌تواند به سرعت اثرات تنظیمی خود را به سایر ژن‌ها منتقل کند و بدین ترتیب نقش مهمی در تنظیم فرآیندهای زیستی ایفا کند. شناسایی این گره‌ها می‌تواند به درک بهتر مسیرهای بیوشیمیایی و توسعه استراتژی‌های مداخلاتی جدید کمک کند.9-2-2. مرکزیت ویژه‌برداریمرکزیت ویژه‌برداری در شبکه‌های زیستی برای شناسایی گره‌هایی که به سایر گره‌های تأثیرگذار متصل هستند، استفاده می‌شود. این گره‌ها نقش مهمی در انتقال و تقویت سیگنال‌ها در شبکه‌های زیستی دارند. به عنوان مثال، یک پروتئین که به پروتئین‌های کلیدی متصل است، می‌تواند تأثیر بسزایی در انتشار سیگنال‌های زیستی و تنظیم مسیرهای سلولی داشته باشد. این معیار به ویژه در شناسایی پروتئین‌ها و ژن‌های کلیدی که در شبکه‌های پیچیده زیستی نقش دارند، مفید است و می‌تواند به توسعه روش‌های درمانی جدید و بهبود درک از فرآیندهای زیستی منجر شود.11. شبکه‌های زیرساختیشبکه‌های زیرساختی مانند شبکه‌های حمل‌ونقل و برق، که شامل ارتباطات بین نقاط توزیع و مصرف انرژی و یا مسیرهای حمل‌ونقل هستند، نیاز به حفظ استحکام و پایداری در برابر خرابی‌ها دارند. در این شبکه‌ها، مرکزیت بینابینی و سیستم‌های رتبه‌بندی چندمعیاری برای حفظ استحکام شبکه و جلوگیری از خرابی‌های گسترده حیاتی هستند.شناسایی گره‌های بحرانی در شبکه‌های زیستی با استفاده از معیارهای مرکزیت بینابینی، مرکزیت نزدیکی و مرکزیت ویژه‌برداری می‌تواند به بهبود درک ما از فرآیندهای زیستی و توسعه روش‌های درمانی جدید کمک کند. این معیارها نقش‌های کلیدی در شناسایی نقاط بحرانی برای مداخلات درمانی دارند و می‌توانند به توسعه استراتژی‌های مؤثرتر در مقابله با بیماری‌ها منجر شوند. با توجه به ویژگی‌های منحصر به فرد هر یک از این معیارها، استفاده ترکیبی از آن‌ها می‌تواند به ارائه یک ارزیابی جامع‌تر و دقیق‌تر از اهمیت گره‌ها در شبکه‌های زیستی منجر شود و به بهبود عملکرد و پایداری این شبکه‌ها کمک کند.11-1. هدفحفظ پایداری و مقاومت شبکه در برابر خرابی‌ها و حملات.11-2. معیار های کلیدی11-2-1. مرکزیت بینابینیشناسایی نقاط حیاتی که خرابی آن‌ها می‌تواند باعث از دست رفتن ارتباطات گسترده در شبکه شود [3][6][26]. این گره‌ها معمولاً در مسیرهای اصلی قرار دارند و نقش حیاتی در اتصال بخش‌های مختلف شبکه ایفا می‌کنند. به عنوان مثال، در یک شبکه حمل‌ونقل، یک ایستگاه مرکزی یا فرودگاه با مرکزیت بینابینی بالا می‌تواند به عنوان یک گلوگاه عمل کند و خرابی آن می‌تواند منجر به اختلالات گسترده در کل سیستم حمل‌ونقل شود. شناسایی و تقویت این گره‌های کلیدی می‌تواند به جلوگیری از خرابی‌های گسترده و حفظ پایداری شبکه کمک کند.11-2-2. سیستم‌های رتبه‌بندی چندمعیاریسیستم‌های رتبه‌بندی چندمعیاری از ترکیب چندین معیار مختلف برای شناسایی گره‌های بحرانی استفاده می‌کنند و به ارائه یک ارزیابی جامع از اهمیت گره‌ها می‌پردازند [12][16][21]. این سیستم‌ها می‌توانند عواملی مانند مرکزیت درجه، مرکزیت بینابینی، مرکزیت نزدیکی و سایر معیارهای مرتبط را در نظر بگیرند تا بتوانند گره‌هایی را که نقش حیاتی در پایداری و عملکرد شبکه دارند، شناسایی کنند. به عنوان مثال، در یک شبکه برق، ترکیب معیارهای مختلف می‌تواند به شناسایی نقاط ضعف و گره‌های بحرانی که نیاز به تقویت دارند، کمک کند. استفاده از این سیستم‌ها می‌تواند به بهبود پایداری و مقاومت شبکه در برابر خرابی‌ها و حملات کمک کند.شبکه‌های زیرساختی به دلیل اهمیت بالای آن‌ها در زندگی روزمره و عملکرد صحیح جوامع، نیاز به حفظ استحکام و پایداری دارند. شناسایی گره‌های بحرانی با استفاده از معیارهای مرکزیت بینابینی و سیستم‌های رتبه‌بندی چندمعیاری می‌تواند به بهبود پایداری و مقاومت این شبکه‌ها کمک کند. مرکزیت بینابینی به شناسایی نقاط حیاتی در شبکه که خرابی آن‌ها می‌تواند منجر به اختلالات گسترده شود، می‌پردازد. سیستم‌های رتبه‌بندی چندمعیاری با ترکیب معیارهای مختلف، ارزیابی جامع‌تری از اهمیت گره‌ها ارائه می‌دهند و به شناسایی نقاط ضعف و گره‌های بحرانی کمک می‌کنند. با توجه به ویژگی‌های منحصر به فرد هر یک از این معیارها، استفاده ترکیبی از آن‌ها می‌تواند به ارائه یک ارزیابی دقیق‌تر و جامع‌تر از اهمیت گره‌ها در شبکه‌های زیرساختی منجر شود و به بهبود عملکرد و پایداری این شبکه‌ها کمک کند.12. چالش‌ها و ملاحظاتپیاده‌سازی این روش‌ها با چالش‌هایی همراه است. یکی از چالش‌های اصلی پیچیدگی محاسباتی است که می‌تواند با افزایش اندازه شبکه به مشکلات عملکردی منجر شود [25][27]. همچنین، ماهیت پویا شبکه‌ها نیازمند نظارت مستمر و به‌روزرسانی مدل‌هاست [18][30]. برای غلبه بر این چالش‌ها، استفاده از تکنیک‌های مقیاس‌پذیر مانند الگوریتم‌های موازی و محاسبات توزیعی ضروری است [29][31].12-1. پیچیدگی محاسباتیبا افزایش اندازه شبکه، پیچیدگی محاسباتی نیز افزایش می‌یابد که می‌تواند به مشکلات عملکردی منجر شود. بسیاری از الگوریتم‌های محاسباتی موجود برای تحلیل معیارهای مرکزی نیاز به زمان و منابع محاسباتی قابل توجهی دارند. این مشکل به ویژه در شبکه‌های بزرگ و پویا که تغییرات مداوم در ساختار آن‌ها وجود دارد، بیشتر نمایان می‌شود. برای غلبه بر این چالش، استفاده از تکنیک‌های مقیاس‌پذیر مانند الگوریتم‌های موازی و محاسبات توزیعی ضروری است. این تکنیک‌ها می‌توانند به توزیع بار محاسباتی در بین چندین پردازنده کمک کنند و زمان محاسباتی را به طور قابل توجهی کاهش دهند.12-2. ماهیت پویا شبکه‌هاماهیت پویا شبکه‌ها نیازمند نظارت مستمر و به‌روزرسانی مدل‌هاست. در بسیاری از شبکه‌ها، ساختار و اتصالات شبکه به صورت مداوم تغییر می‌کنند و این تغییرات می‌توانند بر اهمیت و نقش گره‌ها تأثیر بگذارند. بنابراین، مدل‌های شناسایی گره‌های بحرانی باید به طور مداوم به‌روزرسانی شوند تا بتوانند تغییرات شبکه را به درستی منعکس کنند. این نیاز به نظارت مستمر و به‌روزرسانی مداوم می‌تواند به چالش‌های اجرایی و مدیریتی منجر شود.13. تحلیل تطبیقیبررسی‌های انجام شده نشان می‌دهد که معیارهای مختلفی برای شناسایی گره‌های بحرانی در شبکه‌های مختلف وجود دارد. در شبکه‌های اجتماعی، مرکزیت درجه و ویژه‌برداری نقش کلیدی دارند، زیرا این شبکه‌ها بر انتشار سریع و گسترده اطلاعات تمرکز دارند. در شبکه‌های زیستی، مرکزیت بینابینی و نزدیکی برای شناسایی نقاط کلیدی که می‌توانند به مداخلات درمانی کمک کنند، اهمیت دارند. در شبکه‌های زیرساختی، مرکزیت بینابینی و سیستم‌های رتبه‌بندی چندمعیاری برای حفظ پایداری و مقاومت شبکه در برابر خرابی‌ها حیاتی هستند.14. رابطه بین معیارها و اهدافرابطه بین معیارهای شناسایی گره‌های بحرانی و اهداف مورد نیاز از شبکه‌ها نشان می‌دهد که هر شبکه به معیارهای خاص خود نیاز دارد. در شبکه‌های اجتماعی، گره‌هایی با مرکزیت درجه و ویژه‌برداری بالا قادر به انتشار سریع اطلاعات و تأثیرگذاری بیشتر هستند. در شبکه‌های زیستی، گره‌هایی با مرکزیت بینابینی و نزدیکی بالا می‌توانند نقاط کلیدی برای مداخلات درمانی باشند. در شبکه‌های زیرساختی، گره‌هایی با مرکزیت بینابینی بالا و سیستم‌های رتبه‌بندی چندمعیاری، شبکه را در برابر خرابی‌ها و حملات مقاوم نگه می‌دارند.15. چالش‌ها و آینده پژوهشعلی رغم پیشرفت‌های حاصل شده، چالش‌هایی در شناسایی گره‌های بحرانی، به ویژه در شبکه‌های بزرگ و پویا وجود دارد. پیچیدگی محاسباتی یکی از موانع اصلی است، زیرا بسیاری از الگوریتم‌ها برای محاسبه معیارهای مرکزی محاسباتی هستند و ممکن است با افزایش اندازه شبکه به خوبی مقیاس نشوند. علاوه بر این، ماهیت پویا بسیاری از شبکه‌ها به این معنی است که اهمیت گره‌ها می‌تواند با گذشت زمان تغییر کند و نیاز به نظارت مستمر و به‌روزرسانی ارزیابی‌های گره‌های بحرانی وجود دارد [25][27][30].همچنین، ماهیت خاص به زمینه اهمیت گره‌ها به این معنی است که هیچ معیار واحدی نمی‌تواند به طور جهانی گره‌های بحرانی را در تمام انواع شبکه‌ها شناسایی کند. به عنوان مثال، در حالی که مرکزیت درجه ممکن است برای شناسایی گره‌های بحرانی در یک شبکه ثابت و بدون جهت کافی باشد، ممکن است برای شبکه‌های پویا یا جهت‌دار معیارهای پیچیده‌تری مانند مرکزیت بینابینی یا مرکزیت ویژه‌برداری لازم باشد. این موضوع نیاز به رویکردی دقیق‌تر را که ویژگی‌ها و نیازهای خاص هر شبکه را در نظر بگیرد، برجسته می‌کند [5][18][29].در نتیجه، شناسایی گره‌های بحرانی در شبکه‌های پیچیده یک مشکل چندوجهی است که نیاز به ترکیب معیارها و روش‌های مختلف دارد. با افزایش پیچیدگی و مقیاس شبکه‌ها، توسعه روش‌های پیچیده‌تر و مقیاس‌پذیرتر ضروری خواهد بود. این مقاله یک مرور جامع از وضعیت فعلی تحقیقات در این حوزه است و نقاط قوت و محدودیت‌های رویکردهای مختلف و کاربردهای عملی آن‌ها در حوزه‌های مختلف را برجسته می کند.16. نتیجه‌گیریمعیارهای مرکزی:1. مرکزیت درجه:شبکه‌های اجتماعی: بسیار مهم است، زیرا گره‌هایی با درجه بالا (یعنی گره‌هایی که تعداد اتصالات مستقیم زیادی دارند) نقش کلیدی در انتشار سریع اطلاعات ایفا می‌کنند.شبکه‌های زیستی:اهمیت متوسط دارد، زیرا ممکن است گره‌های مهمی در شبکه وجود داشته باشند که       اتصالات زیادی نداشته باشند اما نقش بحرانی در مسیرهای زیستی ایفا کنند.شبکه‌های زیرساختی: کم اهمیت است، زیرا اتصالات مستقیم ممکن است همیشه نشان‌دهنده اهمیت واقعی یک گره در پایداری و عملکرد شبکه نباشند.روش‌های محاسباتی: الگوریتم‌های ساده برای محاسبه این معیار استفاده می‌شوند.کاربردها: بیشتر در انتشار اطلاعات استفاده می‌شود.2. مرکزیت بینابینی:شبکه‌های اجتماعی: اهمیت دارد، زیرا گره‌هایی با مرکزیت بینابینی بالا می‌توانند مسیرهای کوتاه بین دیگر گره‌ها را تسهیل کنند.شبکه‌های زیستی: بسیار مهم است، زیرا گره‌هایی که در مسیرهای بحرانی قرار دارند نقش کلیدی در عملکرد صحیح شبکه دارند.شبکه‌های زیرساختی: بسیار مهم است، زیرا این گره‌ها می‌توانند به عنوان نقاط حیاتی در پایداری شبکه عمل کنند.روش‌های محاسباتی: الگوریتم‌های پیچیده برای محاسبه این معیار مورد نیاز هستند.کاربردها: بیشتر در حفظ پایداری شبکه استفاده می‌شود.3. مرکزیت نزدیکی:شبکه‌های اجتماعی: اهمیت دارد، زیرا گره‌هایی که به سایر گره‌ها نزدیک هستند می‌توانند اطلاعات را سریع‌تر پخش کنند.شبکه‌های زیستی: اهمیت دارد، زیرا گره‌هایی که به سرعت به سایر گره‌ها دسترسی دارند می‌توانند نقش       مهمی در انتشار سریع اطلاعات زیستی ایفا کنند.شبکه‌های زیرساختی: اهمیت متوسط دارد، زیرا نزدیک بودن به دیگر گره‌ها می‌تواند به بهبود عملکرد شبکه کمک کند، اما تنها معیار حیاتی نیست.روش‌های محاسباتی: الگوریتم‌های متوسط برای محاسبه این معیار استفاده می‌شوند.کاربردها: بیشتر در سرعت انتشار اطلاعات استفاده می‌شود.4. مرکزیت ویژه‌برداری:شبکه‌های اجتماعی: بسیار مهم است، زیرا گره‌هایی که به سایر افراد تأثیرگذار متصل هستند نقش کلیدی در شبکه دارند.شبکه‌های زیستی: اهمیت متوسط دارد، زیرا ممکن است گره‌های مهمی در شبکه زیستی وجود داشته باشند که اتصالات مهمی داشته باشند.شبکه‌های زیرساختی: کم اهمیت است، زیرا کیفیت اتصالات در این شبکه‌ها کمتر اهمیت دارد.روش‌های محاسباتی: الگوریتم‌های پیچیده برای محاسبه این معیار مورد نیاز هستند.کاربردها: بیشتر در شناسایی گره‌های تأثیرگذار استفاده می‌شود.5. یادگیری نمایشی گراف:شبکه‌های اجتماعی: ترکیبی از معیارها برای ارائه یک ارزیابی جامع‌تر استفاده می‌شود.شبکه‌های زیستی: ترکیبی از معیارها برای ارائه یک ارزیابی جامع‌تر استفاده می‌شود.شبکه‌های زیرساختی: ترکیبی از معیارها برای ارائه یک ارزیابی جامع‌تر استفاده می‌شود.روش‌های محاسباتی: تکنیک‌های یادگیری ماشین برای تحلیل پیچیده‌تر و دقیق‌تر استفاده می‌شوند.کاربردها: ارائه یک ارزیابی جامع از اهمیت گره‌ها.روابط بین معیارها و نوع شبکه‌ها:شبکه‌های اجتماعی: مرکزیت درجه و مرکزیت ویژه‌برداری اهمیت بیشتری دارند زیرا انتشار سریع اطلاعات و      تأثیرگذاری افراد کلیدی مهم است. گره‌هایی با اتصالات زیاد و اتصالات به افراد تأثیرگذار نقش اصلی را دارند.شبکه‌های زیستی: مرکزیت بینابینی و مرکزیت نزدیکی اهمیت بیشتری دارند زیرا شناسایی مسیرهای بحرانی و  نقاط کلیدی برای مداخلات درمانی حیاتی است. گره‌هایی که در مسیرهای کوتاه قرار دارند یا به سرعت به دیگر گره‌ها دسترسی دارند نقش مهمی دارند.شبکه‌های زیرساختی: مرکزیت بینابینی و سیستم‌های رتبه‌بندی چندمعیاری اهمیت بیشتری دارند زیرا حفظ پایداری و مقاومت شبکه در برابر خرابی‌ها حیاتی است. گره‌هایی که نقش حیاتی در اتصال کل شبکه دارند بسیار مهم هستند.کاربردهای عملی:انتشار اطلاعات: مرکزیت درجه و ویژه‌برداری در شبکه‌های اجتماعی به حداکثر رساندن انتشار اطلاعات کمک      می‌کنند.پایداری شبکه: مرکزیت بینابینی در شبکه‌های زیستی و زیرساختی به حفظ پایداری و عملکرد صحیح شبکه      کمک می‌کند.سرعت انتشار اطلاعات: مرکزیت نزدیکی در شبکه‌های اجتماعی و زیستی به انتشار سریع اطلاعات کمک می‌کند.شناسایی گره‌های تأثیرگذار: مرکزیت ویژه‌برداری در شبکه‌های اجتماعی به شناسایی افراد کلیدی و تأثیرگذار کمک می‌کند.ارزیابی جامع: یادگیری نمایشی گراف ترکیبی از معیارها را برای ارائه یک ارزیابی جامع و دقیق از شبکه‌ها    استفاده می‌کند.این جدول و توضیحات آن نشان می‌دهد که شناسایی گره‌های بحرانی در شبکه‌های پیچیده به نوع شبکه و اهداف آن وابسته است و استفاده از ترکیبی از معیارهای مختلف برای ارائه یک ارزیابی جامع ضروری است.شناسایی گره‌های بحرانی در شبکه‌های پیچیده به دلیل تأثیر بزرگ بر عملکرد و پایداری این شبکه‌ها، از اهمیت ویژه‌ای برخوردار است. با توجه به نوع شبکه و اهداف مورد نظر، معیارهای مختلفی برای این شناسایی مورد استفاده قرار می‌گیرند.در شبکه‌های اجتماعی، مرکزیت درجه و مرکزیت ویژه‌برداری بیشترین اهمیت را دارند. این شبکه‌ها بر انتشار سریع و گسترده اطلاعات تمرکز دارند، بنابراین گره‌هایی که اتصالات زیادی دارند و یا به سایر افراد تأثیرگذار متصل هستند، نقش کلیدی در انتشار اطلاعات و تأثیرگذاری دارند.در شبکه‌های زیستی، مرکزیت بینابینی و مرکزیت نزدیکی اهمیت بیشتری دارند. این شبکه‌ها به شناسایی مسیرهای بحرانی و نقاط کلیدی برای مداخلات درمانی نیاز دارند. گره‌هایی که در مسیرهای کوتاه بین سایر گره‌ها قرار دارند و یا به سرعت به سایر گره‌ها دسترسی دارند، برای حفظ عملکرد صحیح شبکه و انجام مداخلات درمانی مؤثر، حیاتی هستند.شبکه‌های زیرساختی مانند شبکه‌های حمل‌ونقل و برق نیاز به حفظ پایداری و مقاومت در برابر خرابی‌ها دارند. در این شبکه‌ها، مرکزیت بینابینی و سیستم‌های رتبه‌بندی چندمعیاری بسیار مهم هستند. این معیارها به شناسایی نقاط حیاتی که خرابی آن‌ها می‌تواند باعث اختلالات گسترده شود، کمک می‌کنند و به حفظ پایداری و عملکرد صحیح شبکه کمک می‌کنند.روش‌های جدیدتر مانند یادگیری نمایشی گراف و سیستم‌های رتبه‌بندی چندمعیاری با ترکیب چندین معیار مرکزی، ارزیابی جامع‌تری از اهمیت گره‌ها ارائه می‌دهند. این روش‌ها با استفاده از تکنیک‌های یادگیری ماشین و الگوریتم‌های بهینه‌سازی، تحلیل پیچیده‌تر و دقیق‌تری از شبکه‌ها ارائه می‌دهند.علی‌رغم پیشرفت‌های حاصل شده، چالش‌هایی همچنان در شناسایی گره‌های بحرانی وجود دارد. پیچیدگی محاسباتی یکی از موانع اصلی است، به ویژه در شبکه‌های بزرگ و پویا که نیاز به نظارت مستمر و به‌روزرسانی ارزیابی‌ها دارند. همچنین، ماهیت پویا بسیاری از شبکه‌ها به این معنی است که اهمیت گره‌ها می‌تواند با گذشت زمان تغییر کند.برای مقابله با این چالش‌ها، استفاده از تکنیک‌های مقیاس‌پذیر مانند الگوریتم‌های موازی و محاسبات توزیعی ضروری است. همچنین، پژوهش‌های آینده باید بر توسعه و بهبود الگوریتم‌های شناسایی گره‌های بحرانی متمرکز شوند که بتوانند با افزایش مقیاس و پیچیدگی شبکه‌ها سازگار شوند.در نهایت، شناسایی گره‌های بحرانی در شبکه‌های پیچیده نیازمند یک رویکرد چندجانبه و دقیق است که قادر باشد به طور مؤثری با ویژگی‌های منحصر به فرد هر شبکه سازگار شود. پژوهش‌های آینده باید به بررسی و بهبود الگوریتم‌ها و روش‌های شناسایی گره‌های بحرانی بپردازند تا بتوانند به حفظ استحکام و پایداری شبکه‌ها در مواجهه با تغییرات و تهدیدات مختلف کمک کنند.(این مطلب مربوط به پروژه درس شبکه‌های پیچیده‌پویا در دانشگاه‌ شهید‌بهشتی می باشد.)مراجع[1] Yu, E., Chen, D., Fu, Y. and Xu, Y. (2022). Identifying critical nodes in complex networks by graph representation learning. arXiv (Cornell University). doi:https://doi.org/10.48550/arxiv.2201.07988.[2] Khaoula Ait Rai, Mustapha Machkour and Jilali Antari (2023). Influential nodes identification in complex networks: a comprehensive literature review. 12(1). doi:https://doi.org/10.1186/s43088-023-00357-w.[3] Zhao, N., Yang, S., Wang, H., Zhou, X., Luo, T. and Wang, J. (2024). A Novel Method to Identify Key Nodes in Complex Networks Based on Degree and Neighborhood Information. Applied sciences, 14(2), pp.521–521. doi:https://doi.org/10.3390/app14020521.[4] Sheikhahmadi, A., Veisi, F., Sheikhahmadi, A. and Mohammadimajd, S. (2022). A multi-attribute method for ranking influential nodes in complex networks. PLOS ONE, 17(11), p.e0278129. doi:https://doi.org/10.1371/journal.pone.0278129.[5] Ugurlu, O. (2022). Comparative analysis of centrality measures for identifying critical nodes in complex networks. Journal of Computational Science, 62, p.101738. doi:https://doi.org/10.1016/j.jocs.2022.101738.[6] Ventresca, M. and Aleman, D. (2015). Efficiently identifying critical nodes in large complex networks. Computational Social Networks, 2(1). doi:https://doi.org/10.1186/s40649-015-0010-y.[7] Mao, J., Zou, D., Sheng, L., Liu, S., Gao, C., Wang, Y. and Li, Y. (2024). Identify Critical Nodes in Complex Network with Large Language Models. arXiv (Cornell University). doi:https://doi.org/10.48550/arxiv.2403.03962.[8] Ventresca, M., Kyle Robert Harrison and Ombuki-Berman, B.M. (2015). An Experimental Evaluation of Multi-objective Evolutionary Algorithms for Detecting Critical Nodes in Complex Networks. Lecture notes in computer science, pp.164–176. doi:https://doi.org/10.1007/978-3-319-16549-3_14.[9] Yang, A.J., Deng, S., Wang, H., Zhang, Y. and Yang, W. (2023). Disruptive coefficient and 2-step disruptive coefficient: Novel measures for identifying vital nodes in complex networks. Journal of informetrics, 17(3), pp.101411–101411. doi:https://doi.org/10.1016/j.joi.2023.101411.[10] Chen, X. (2015). Critical nodes identification in complex systems. Complex &amp; Intelligent Systems, 1(1-4), pp.37–56. doi:https://doi.org/10.1007/s40747-016-0006-8.[11] Munikoti, S., Das, L. and Natarajan, B. (2022). Scalable graph neural network-based framework for identifying critical nodes and links in complex networks. Neurocomputing, 468, pp.211–221. doi:https://doi.org/10.1016/j.neucom.2021.10.031.[12] Ai, J., He, T., Su, Z. and Shang, L. (2022). Identifying influential nodes in complex networks based on spreading probability. Chaos, Solitons &amp; Fractals, 164, p.112627. doi:https://doi.org/10.1016/j.chaos.2022.112627.[13] Yang, H. and An, S. (2020). Critical Nodes Identification in Complex Networks. Symmetry, 12(1), p.123. doi:https://doi.org/10.3390/sym12010123.[14] Mata, A.S. da (2020). Complex Networks: a Mini-review. Brazilian Journal of Physics, 50(5), pp.658–672. doi:https://doi.org/10.1007/s13538-020-00772-9.[16] Computational Social Networks, &quot;An efficient heuristic algorithm for identifying critical nodes&quot; (SpringerOpen).[17] arXiv, &quot;Critical node identification using evolutionary algorithms&quot; (arXiv, 2020).[18] ScienceDirect, &quot;Graph-based methods for critical node detection&quot; (ScienceDirect, 2021).[19] SpringerLink, &quot;Evaluating centrality measures for network resilience&quot; (Springer, 2020).[20] PLOS ONE, &quot;A comparative study of centrality measures for network analysis&quot; (PLOS, 2020).[21] MDPI, &quot;Advanced centrality metrics for network analysis&quot; (MDPI, 2021).[22] SpringerLink, &quot;Critical nodes in transportation networks: A review&quot; (Springer, 2021).[23] ScienceDirect, &quot;Centrality measures and their application to power grid resilience&quot; (ScienceDirect, 2020).[24] SpringerLink, &quot;Critical nodes in communication networks: Identification and optimization&quot; (Springer, 2021).[25] Oxford Academic, &quot;Robustness of complex networks: A critical review&quot; (Oxford Academic, 2021).[26] PLOS ONE, &quot;Centrality metrics for dynamic networks: A comparative study&quot; (PLOS, 2020).[27] MDPI, &quot;Graph neural networks for critical node detection: A review&quot; (MDPI, 2021).[28] SpringerLink, &quot;Multi-layer network analysis: Methods and applications&quot; (Springer, 2020).[29] ScienceDirect, &quot;Advanced methods for critical node detection in large-scale networks&quot; (ScienceDirect, 2021).[30] SpringerLink, &quot;Efficient algorithms for centrality measures in large networks&quot; (Springer, 2020).[31] Oxford Academic, &quot;Comparative evaluation of centrality metrics in different network types&quot; (Oxford Academic, 2021).</description>
                <category>مجتبی خدادوست</category>
                <author>مجتبی خدادوست</author>
                <pubDate>Sat, 13 Jul 2024 22:03:02 +0330</pubDate>
            </item>
                    <item>
                <title>آشنایی با پروژه: معماری های مبتنی بر ابر</title>
                <link>https://virgool.io/@mshtba/%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C-%D8%A8%D8%A7-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C-%D9%87%D8%A7%DB%8C-%D9%85%D8%A8%D8%AA%D9%86%DB%8C-%D8%A8%D8%B1-%D8%A7%D8%A8%D8%B1-mldez4gmjmxs</link>
                <description>مقدمهرایانش ابری(Cloud Computing) نحوه ارائه خدمات را متحول کرده است، کسب و کارها و افراد می توانند با استفاده از خدمات ابری متفاوتی که ارائه دهندگان ابر فراهم می کنند متناسب با تقاضا خودشان به منابع دسترسی داشته باشند. این امر سبب شده تا معماری هایی انعطاف پذیر و مقیاس پذیر برای ارائه بهینه خدمات به مشتریان طراحی شوند. در این پژوهش سعی در بررسی معماری‌های مبتنی بر ابر از دید معمار نرم افزار را داریم.تا کنون تعریف و طبقه بندی های مختلفی برای سرویس های ابری ارائه شده است. معروف ترین آن ها(NIST)، سه مدل سرویس ابری (Service models)و چهار مدل استقرار برای این سرویس های ابری(Deployment models) معرفی می کند.مدل های سرویس های ابری می توانند:مدل Infrastructure as a Service(IaaS) باشند که بصورت خام منابع ابری را به عنوان سرویس ارائه می دهند (مانند ماشین‌های مجازی و حافظه ای که Amazon EC2 و Amazon S3 ارائه می‌دهند).مدل Platform as a Service(PaaS) باشند که ابزارهایی برای توسعه و پیاده‌سازی نرم‌افزارها به کاربران عرضه می‌کند (مانند قابلیت‌هایی که Google App Engine ارائه می‌دهد).تفاوت اصلی این مدل با IaaS در مدیریت زیر ساخت است که در این مدل کاملا بر عهده ارائه دهنده ابر می باشد.مدل Software as a Service(SaaS) باشند که یک محصول نهایی را در اختیار کاربران می‌گذارد (مانند Gmail).علاوه بر این سه مدل، Function as a Service(FaaS) را نیز می توان یک مدل سرویس نسبتا جدید دانست که مفصل تر به آن خواهیم پرداخت (مانند AWS Lambda).چهار مدل مختلف برای استقرار این سرویس ها معرفی شده:مدل Private Cloud که برای استفاده شخصی مستقر می شود. Community Cloud که می تواند برای یک سازمان و افرادی با اهداف مشترک مستقر شود. Public Cloud که در دسترس همه قرار دارد و با خریداری اشتراک هر فرد می تواند از خدمات سرویس مورد نظرش استفاده کند. Hybrid Cloud که ممکن است ترکیبی از سه مدل قبل می باشد.همچنین، شاخصه های اصلی سرویس های ابری :On-demand self-serviceBroad network accessResource poolingRapid elasticityMeasured serviceتکامل معماری های مبتنی بر ابر:در طول زمان نحوه پیاده سازی سرویس‌های ابری مورد تغییر قرار گرفته، ماشین‌های مجازی برای مدیریت و بهره‌بری بهتر از منابع مورداستفاده قرار گرفتند، سبک بودن image ها در containerization و آسان‌تر بودن نگهداری و استقرار آنها باعث شد تا معماری‌های مبتنی بر ابر به سمت containerization سوق پیدا کنند. با پیاده سازی برخی منطق های کسب و کار در قالب توابع و فراخوانی آن ها نیز معماری serverless معرفی شده که امروزه مورد استقبال ارائه دهندگان ابر قرار گرفته است.تکامل Cloudمجازی سازی(virtualization) و containerizationیک Container در واقع بسته‌ای از کدها و وابستگی‌های یک سرویس یا میکروسرویس است که توانایی اجرا بر روی دستگاه‌های مختلف را دارد، Container ها زیربنا معماری ابری container-based  و microservice ها هستند. درحالی‌که Virtual Machine می توان یک کپی از سیستم‌عامل دانست که بر روی سرور اجرا می‌شود.در مقاله(3) مقایسه ای در رابطه با عملکرد مجازی سازی و containerization انجام شده که در جدول زیر آمده:ویژگی های کیفی در توسعه سرویس های ابریهمانطور که در حالت سنتی(non-cloud)، وقتی در رابطه با طراحی و توسعه محصولی که قرار است در اختیار مشتریان قرار گیرد تصمیم گیری می شود،در توسعه محصولات ابری نیز به عنوان معمار نرم افزار باید به یکسری ویژگی های کیفی(Quality attributes) و نیازمندی های غیر کارکردی(non-functional) توجه کرد که برای آن ها می بایست سناریو مشخص کرد و از الگو ها و تاکتیک ها استفاده کرد. باید مطمئن شد که ویژگی های کیفی مدنظر در QoS نرم افزار تعریف شده است، به عنوان مثال،security، scalability، maintainability و غیره. معمار نرم افزار باید اطمینان حاصل کند که برنامه طراحی شده می‌تواند سطوح خاصی از این ویژگی‌های کیفی را برآورده کند، توانایی معمار نرم افزار برای ارضای سطح مورد نظر برای ویژگی‌های کیفی در نرم‌افزار بستگی به نحوه و مهارت استفاده از این الگو ها و تاکتیک ها دارد.یکی از شاخصه های اصلی توسعه نرم افزار ها در محیط ابری، انتزاع نرم افزار از منابع سخت افزاری(Software abstraction of hardware resources) است. در واقع مجازی سازی باعث شد تا این ویژگی مهم در محیط ابری ایجاد شود که در نتیجه سطح scalability و maintainability بسیار بالا رفت.مسئله Performanceعملکرد سرور ها را معمولا در جنبه های زیر اندازه گیری می کنند:Resource Utilization(در محیط ابری این معیار هر چه بالاتر باشد، بهتر است.)Response time(هرچه کمتر، بهتر)Latency(هرچه کمتر، بهتر)Throughput(هرچه بیشتر، بهتر)از اصول مربوط به توسعه نرم افزاری که در محیط غیر ابری برای رسیدن به عملکرد بهتر استفاده می کنیم، در توسعه محصولات ابری نیز می توان استفاده کرد(مانند parallelism، pooling shared resources و ...)در محیط ابر با توجه این شاخصه که ارائه دهندگان ابر می خواهند ارائه سریع بر حسب تقاضا داشته باشند، باید سیستم ها طوری طراحی شوند که از  elasticity سریع پشتیبانی کنند. (scale up و scale down سریع)مسئله Data storageبرای بررسی این موضوع تئوری CAP(مخفف Consistency, Availability, Partitionability) را مورد بررسی قرار می دهیم. تئوری CAP بیان این مسأله در سیستم‌های پردازشی است؛ نمی‌توان سیستمی داشت که همزمان سه ویژگی Consistency (پایداری)، Availability (دسترس‌پذیری) و Partitionability(تحمل ‌پذیری دربرابر جداسازی) را داشته باشد.تئوری CAPناحیه AP: در این ناحیه که Availability و Partitionability مطلوب است سیستم در مقابل خرابی شبکه مقاوم است.ناحیه AC: در این ناحیه که Availability و Consistency مطلوب است هر درخواست یک پاسخ معتبر مربوطش را دریافت می کند.ناحیه CP: در این ناحیه که Consistency و Partitionability مطلوب است در هر درخواست خواندن، آخرین نسخه از داده ها را دریافت می کنیم.محاسبات Serverlessمحاسبات بدون سرور(serverless) یک روش جدید است که در آن منطق برنامه بر حسب تقاضا و در پاسخ به رویدادها، بدون نیاز به مدیریت سرورها، اجرا می‌شود. با محاسبات بدون سرور، توسعه‌دهندگان توابعی را تعریف می‌کنند که می‌توانند توسط رویدادهایی مانند درخواست‌های HTTP، تغییرات پایگاه داده و آپلود فایل فعال شوند. پلتفرم های محبوب بدون سرور عبارتند از AWS Lambda، Google Cloud Functions و Microsoft Azure Functions.پیاده سازی Serverless با سرویس های ابری آمازونبرای پیاده سازی منطق بدون سرور با استفاده از سرویس های آمازون، از معماری آمازون ارائه می دهد استفاده می کنیم. این معماری از 5 لایه تشکیل شده:لایه  Compute: این لایه درخواست‌های سیستم‌های خارجی را مدیریت می‌کند، دسترسی را کنترل می‌کند و تأیید می‌کند که درخواست‌ها مجاز هستند یا خیر. منطق کسب و کار توسط محیط زمان اجرا آن، پیاده می شود. در این لایه AWS Lambda، این امکان را می‌دهد برنامه‌های بدون سرور را روی یک پلتفرم مدیریت شده اجرا کنید که از معماری‌های میکروسرویس و اجرا در لایه تابع پشتیبانی می‌کند. با آمازون API Gateway، می‌توان یک REST API کاملاً مدیریت‌شده را اجرا کنید که با Lambda برای اعمال منطق کسب‌وکار شما ادغام می‌شود و شامل مدیریت ترافیک، authorization و کنترل دسترسی، نظارت API versioning  است. در این لایه AWS Step Function ها، workload های بدون سروری که در محدوده اجرا AWS Lambda پشتیبانی نمی شوند(state، function chaining) را با شکستن به چند مرحله یا با فراخوانی worker ها که روی Amazon EC2 ها اجرا می‌شوند، مدیریت می کند.لایه Data: این لایه ذخیره سازی دائمی را از داخل یک سیستم مدیریت می کند. همچنین یک مکانیسم امن برای ذخیره state هایی که منطق کسب و کار به آن نیاز دارد، فراهم می کند. همچنین مکانیزمی برای ایجاد event ها در پاسخ به تغییرات داده ها نیز فراهم می کند.سرویس های آمازونی که در این لایه استفاده می شوند: Amazon DynamoDB، Amazon Simple Storage Service (Amazon S3)لایه Messaging and streaming: لایه Messaging ارتباط بین بخش های مختلف را مدیریت می کند و لایه Streaming تحلیل و پردازش real-time داده های در جریان را مدیریت می کند.سرویس های آمازونی که در این لایه استفاده می شوند: Amazon Simple Notification Service (Amazon SNS)، Amazon Kinesisلایه  User management and identity: این لایه احراز هویت و authorization را برای مشتریان خارجی و داخلی فراهم می کند.سرویس آمازونی که در این لایه استفاده می شود:  Amazon Cognitoلایه Edge: این لایه ارائه و اتصال به مشتریان خارجی را مدیریت می کند.سرویس آمازونی که در این لایه استفاده می شود: Amazon CloudFrontروش های deployment که آمازون برای این معماری ارائه می دهد به شرح زیر است:هنگام ساخت یک میکروسرویس بدون سرور، به این فکر کنید که چگونه یک  منطق کسب و کار می تواند به عنوان یک سرویس قابل استفاده مجدد برای مشتریان ارائه شود. ساخت میکروسرویس‌های بدون سرور در AWS شما راباعث می شود علاوه بر استفاده از خود قابلیت‌های بدون سرور، بلکه از سایر خدمات و ویژگی‌های AWS و همچنین ابزارهای AWS و AWS Partner Network (APN) استفاده کنید. فناوری‌های بدون سرور بر روی زیرساخت‌های مقاوم در برابر خطا ساخته شده‌اند و می توان خدمات قابل اعتمادی را برای workload ها ساخت. اکوسیستم ابزارسازی آمازون این امکان را می‌دهد که ساخت شود، وظایف خودکار شوند، وابستگی‌ها هماهنگ شوند. در نهایت، ابزارهای بدون سرور AWS به کسب و کار ها اجازه می دهد تا بر روی منطق کاریشان تمرکز کنند و همچنین هزینه‌های خود را در مراحل ورود و زمان‌های غیر اوج مصرف پایین نگه دارند. AWS Reference architecture for RESTful microservices معرفی  SCAR framework(Serverless Container-aware Architecture) لینک گیت هاب SCARدر مقاله(4) این فریم ورک معرفی می شود. SCAR اجازه می دهد تا با ترکیب توابعی که روی AWS Batch یا AWS Lambda اجرا می شوند، workflow های بدون سرور ایجاد کنید،که فایل های خروجی را تولید می کند و  اجرای توابعی را آغاز می کند که مجدداً روی AWS Batch یا AWS Lambda اجرا می شوند، با استفاده از همان تصاویر Docker. در نتیجه ایجاد گردش‌های کاری بدون سرور با سرویس‌های مقیاس‌پذیر را می توان با این framework انجام داد.معماری ارائه شده SCAR به شکل زیر است:«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»منابع:1. Mell, P. and Grance, T. (2011), The NIST Definition of Cloud Computing, Special Publication (NIST SP), National Institute of Standards and Technology, Gaithersburg, MD, [online], https://doi.org/10.6028/NIST.SP.800-145 (Accessed January 31, 2024)2. Kratzke, Nane. 2018. &quot;A Brief History of Cloud Application Architectures&quot; Applied Sciences 8, no. 8: 1368. https://doi.org/10.3390/app80813683. R. K. Barik, R. K. Lenka, K. R. Rao and D. Ghose, &quot;Performance analysis of virtual machines and containers in cloud computing,&quot; 2016 International Conference on Computing, Communication and Automation (ICCCA), Greater Noida, India, 2016, pp. 1204-1210, doi: 10.1109/CCAA.2016.7813925.4. Alfonso Pérez, Germán Moltó, Miguel Caballer, Amanda Calatrava, Serverless computing for container-based architectures, Future Generation Computer Systems, https://doi.org/10.1016/j.future.2018.01.022.5. https://derak.cloud/blog/tech/%D8%AA%D8%A6%D9%88%D8%B1%DB%8C-cap/6. https://docs.aws.amazon.com/wellarchitected/latest/framework7. https://docs.aws.amazon.com/wellarchitected/latest/serverless-applications-lens/definitions.html8. D. Gannon, R. Barga and N. Sundaresan, &quot;Cloud-Native Applications,&quot; in IEEE Cloud Computing, vol. 4, no. 5, pp. 16-21, September/October 2017, doi: 10.1109/MCC.2017.4250939.9. I. Odun-Ayo, M. Ananya, F. Agono and R. Goddy-Worlu, &quot;Cloud Computing Architecture: A Critical Analysis,&quot; 2018 18th International Conference on Computational Science and Applications (ICCSA), Melbourne, VIC, Australia, 2018, pp. 1-7, doi:10.1109/ICCSA.2018.8439638.</description>
                <category>مجتبی خدادوست</category>
                <author>مجتبی خدادوست</author>
                <pubDate>Fri, 02 Feb 2024 23:57:21 +0330</pubDate>
            </item>
                    <item>
                <title>مروری بر کنفرانس های مرتبط با معماری نرم افزار</title>
                <link>https://virgool.io/@mshtba/%D9%85%D8%B1%D9%88%D8%B1%DB%8C-%D8%A8%D8%B1-%DA%A9%D9%86%D9%81%D8%B1%D8%A7%D9%86%D8%B3-%D9%87%D8%A7%DB%8C-%D9%85%D8%B1%D8%AA%D8%A8%D8%B7-%D8%A8%D8%A7-%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-lgot1avebdbo</link>
                <description>عنوان: Monolith Decomposition Patternsسخنران: Sam Newmanلینکدر این سخنرانی Sam Newman چالش هایی در مورد حرکت از معماری Monolith به سمت معماری Microservice را مورد بحث قرار می دهد. Newman اصلی ترین انگیزه شرکت ها برای رفتن به سمت معماری Microservice را ویژگی Independeent deployability معرفی می کند که به تیم‌ها اجازه می‌دهند تا به طور مستقل کار کنند و تغییرات هدفمند ایجاد کنند. همچنین ازمزایای معماری Modular Monolith سخن گفته می شود که وقتی مرز ماژول ها به خوبی تعریف شده و پیشنهاد می‌کند که برای برخی شرکت‌ها ممکن است آنها مناسب‌تر از معماری Microservice باشند. این کنفرانس یک معماری را برای استارت‌آپ‌ها معرفی می‌کند،Modular Monolith با جداسازی داده‌ها برای هر ماژول، برای مهاجرت احتمالی آینده به معماری Microservice زیرا یکی از مشکلات اصلی که در زمان مهاجرت از Monolith  به Microservice با آن مواجه می شویم، حجیم بودن Database نرم افزار است.برای حرکت به سمت معماری Microservice، درک اینکه چرا می خواهیم مهاجرت کنیم و انجام طراحی Domain-Driven برای شناسایی مرزهای سرویس ها را توصیه می‌ شود، همچنین Newman تاکید می کند که این مهاجرت نباید به صورت ناگهانی و همه جانبه باشد بلکه به صورت افزایشی شروع به پیداکردن سرویس ها می کنیم.الگو هایی که برای مهاجرت از معماری Monolith به Microservice در این کنفرانس معرفی می شوند:الگو اول: Strangler fig application patternایده این الگو از یک گیاه با نام strangler fig گرفته شده که چگونه در شرایط جوی سخت رشد می کند. ایده این است که ما یک نرم افزار با معماری Monolith داریم که نیازمندی های مختلف ما را برطرف می کند حال سعی می کنیم یک نرم افزار با معماری Microservice حول آن ایجاد کنیم، همچنین در مورد اهمیت اینکه ابتدا چه نیازمندی هایی را برای مهاجرت انتخاب کنیم بحث می شود.الگو دوم:  Branch by abstractionاین روش به این صورت است که می خواهیم فضایی را در سیستم monolith  موجود خود ایجاد کنیم، که در آن بتوانیم دو پیاده سازی از یک عملکرد یکسان را در کنار هم داشته باشیم.عنوان: Five Things Every Developer Should Know about Software Architectureسخنران: Simon Brownلینک- Software architecture isn&#x27;t about big design upfrontدر این سخنرانی Simon Brown می خواهد تفکر اشتباه در مورد معماری نرم افزار را اصلاح کند، اکثر توسعه دهندگان وقتی در مورد معماری نرم افزار فکر می کنند آن را مترادف با big picture upfront تصور می کنند در صورتی که این دو متفاوتند. در واقع می گوید که مهندسی نرم افزار و معماری نرم افزار دو مبحث مختلف اند.- Every software team needs to consider software architectureسخنران به جای تلقی معماری به عنوان یک طرح اولیه پروژه، از مشارکت مداوم معماری در فرایند توسعه نرم افزار حمایت می کند. در اصل، Brown معتقد است که بی توجهی به معماری می تواند منجر به سیستم های بی نظم، ناکارآمد و شکننده شود، در حالی که ملاحظات معمارانه تیم ها را قادر می سازد نرم افزارهای قوی تر، سازگارتر و با قابلیت نگهداری ایجاد کنند.- The software architecture role is about coding, coaching &amp; collaborationهمچنین در این سخنرانی این دیدگاه نسبت به معماران نرم افزار که افرادی مستبدند را منسوخ شده معرفی می کند، در واقع سعی می کند رویکرد shared or pair architecting را معرفی کند.- You don&#x27;t need to use UMLسخنران(Simon Brown) در مورد اینکه استفاده از UML در معماری نرم افزار ضرورت نیست، اگرچه به عنوان یک زبان مشترک برای نمودارسازی و تجسم عمل می کند. روش‌های جایگزین مانند whiteboarding و مدل C4 برای تجسم معماری بیان می‌شوند.- A good software architecture enables agilityدر نهایت، بحث به agility به عنوان یک ویژگی کیفی و اینکه چگونه معماری خوب آن را قادر می‌سازد، می‌پردازد. همچنین استدلال می‌کند که یک طراحی با ساختار می‌تواند باعث پیشرفت و انطباق سریعتر شود.عنوان: Why Architectural Work Comes Before Codingسخنرانان: Simon Brown, Stefan Tilkovلینکدر این کنفرانس تأکید می شود که معماری نرم افزار برای همه توسعه دهندگان، نه فقط برای کسانی که عنوان معمار نرم افزار دارند، بسیار مهم است. این به این دلیل است که تصمیمات معماری بر کل تیم و پروژه تأثیر می گذارد، به این معنا که نقش معمار نرم افزار نباید دیکتاتوری باشد، درواقع معماری نرم افزار مجموعه ای از وظایف و مسئولیت هاست که باید به طور مشترک بین تیم تقسیم شود.تیم ها باید به اندازه کافی طراحی اولیه انجام دهند به این معنا که نه بدون طراحی باشیم و نه طراحی بیش از حد بزرگ قبل از پیاده سازی داشته باشیم. توصیف درست معماری به تیم‌ها اجازه می‌دهد تا tradeoff ها را بررسی کنند.چابکی یا agility باعث شده برخی از تیم ها از معماری غافل شوند، اما چابکی و معماری خوب در واقع مکمل یکدیگر هستند.ابزارهای همکاری remote ذاتاً ساختار معماری زیادی ارائه نمی دهند. ممکن است مشکلاتی در مورد توسعه ابزارهایی وجود داشته باشد که رسمیت را با انعطاف پذیری متعادل می کند.به طور کلی، این کنفرانس سخنرانان تفکراتشان را در مورد نقش و شیوه های معماری نرم افزار مدرن توصیف می کنند.نظر Brown بر احیای معماری به روشی مناسب برای توسعه‌دهندگان متمرکز است که بهترین‌ روش ها را از شیوه‌های سنتی انتخاب می کند بدون اینکه زیاده‌روی کند، در حالی که انعطاف‌پذیری و agility را در بر می‌گیرد.«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»</description>
                <category>مجتبی خدادوست</category>
                <author>مجتبی خدادوست</author>
                <pubDate>Fri, 05 Jan 2024 23:10:40 +0330</pubDate>
            </item>
                    <item>
                <title>مروری بر معماری‌ها و مفاهیم نوین نرم‌افزاری</title>
                <link>https://virgool.io/@mshtba/%D9%85%D8%B1%D9%88%D8%B1%DB%8C-%D8%A8%D8%B1-%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C-%D9%87%D8%A7-%D9%88-%D9%85%D9%81%D8%A7%D9%87%DB%8C%D9%85-%D9%86%D9%88%DB%8C%D9%86-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1%DB%8C-d69da0igmnzz</link>
                <description>این مطلب تمرینی از درس معماری نرم افزار دانشگاه شهید بهشتی  به تدریس دکتر صادق علی اکبری می باشد.Modular Monolithicمعماری Modular Monolithic (یکپارچه ماژولار) یک رویکرد توسعه نرم افزار است که سادگی یک معماری یکپارچه را با مزایای طراحی ماژولار ترکیب می کند. این برنامه را به ماژول‌هایی تقسیم می‌کند که هر کدام دارای مرزها و وابستگی های کاملا مشخص هستند. هر ماژول منطق کسب و کار مستقل را برای خود دارد  و می تواند دارای پایگاه داده خود باشد. این معماری امکان جداسازی منطقی درون ماژول ها را با پیروی از اصول معماری تمیز فراهم می کند. اگرچه نگرانی هایی مانند زمان طولانی کامپایل و مدت زمان deployment وجود دارد اما مزایایی مانند افزایش بهره وری، debugging ساده، افزایش قابلیت نگهداری (maintainability) و اینکه می تواند به صورت تدریجی به سمت میکروسرویسی شدن معماری رود را دارد. به طور کلی، معماریModular Monolithic انتخابی برای سناریوهای خاص است که تعادلی بین سادگی و مقیاس پذیری ارائه می دهد و باید توسط معمار سیستم گرفته شود.AWS – Amazon Web Servicesخدمات وب آمازون (AWS) یک پلتفرم رایانش ابری جامع است که توسط آمازون ارائه شده است و ارائه دهنده محصولات زیرساخت به عنوان سرویس(IaaS)، پلتفرم به عنوان سرویس (PaaS) و نرم افزار به عنوان سرویس (SaaS) است. AWS اولین خدمات وب خود را در سال 2002 راه اندازی کرد که از زیرساخت داخلی آمازون که برای عملیات خرده فروشی آنلاین طراحی شده بود، سرچشمه می گرفت. با بیش از 200 سرویس طبقه بندی شده در محاسبات، ذخیره سازی، پایگاه های داده، تجزیه و تحلیل، شبکه و موارد دیگر، AWSتوسط سازمان ها در کشور های توسعه یافته :))) از جمله سازمان های دولتی، موسسات آموزشی و شرکت های خصوصی استفاده می شود. AWS در 87 منطقه که در ده‌ها مرکز داده در سراسر جهان پخش شده‌، خدمات کلیدی که ارائه می دهد عبارتند از Amazon EC2  برای سرورهای مجازی،Amozon S3  برای ذخیره سازی اشیاء مقیاس پذیر و پایگاه داده های مختلف مانند DynamoDB و Amazon RDS. ویژگی‌های امنیتی این پلتفرم شامل AWS Identity and Access Management، خدمات رمزگذاری و ابزارهایی مانند Amazon Inspector برای تجزیه و تحلیل آسیب‌پذیری است. AWS بالاترین سهم را در بازار ابری دارد و تا سه ماهه اول سال 2022، 33 درصد از کل سهم بازار را در اختیار داشته و از رقبایی مانند Microsoft Azure و Google پیشی گرفته است.API-first Approachیک پارادایم توسعه نرم افزار است که API ها را در اولویت قرار می دهد و آنها را به عنوان عناصر اساسی در ایجاد برنامه ها در نظر می گیرد. در رویکرد  API-first، توسعه‌دهندگان قبل از نوشتن کدهای دیگر،API  را می‌سازند.API  ها می توانند private، partner و public باشند که نقش های مختلفی دارند مثلا API های خصوصی برای استفاده داخلی است. اتخاذ یک مدل API-first مزایای قابل توجهی را به همراه دارد و توسعه دهندگان را قادر می سازد تا نرم افزارهای انعطاف پذیرتر را در زمان کمتری ایجاد کنند. به غیر از استفاده ای که خود توسعه دهندگان از API ها دارند به تحلیلگران کسب و کار و مدیران محصول، اجازه می دهد در ساخت برنامه های کاربردی شرکت کنند. بهبود کیفیت نرم‌افزار نتیجه مستقیم رویکرد API-first است که از رسیدن اشکالات به تولید جلوگیری می‌کند و همکاری بین تیم‌ها را افزایش می‌دهد.NoSQL Databasesپایگاه های داده NoSQL دسته ای از پایگاه های داده هستند که برای ذخیره سازی انعطاف پذیر، مقیاس پذیر از داده های بدون ساختار یا نیمه ساختار یافته طراحی شده اند. برخلاف پایگاه‌های داده SQL، پایگاه‌های داده NoSQL برخی از محدودیت‌های سازگاری داده‌ها را برای بهینه‌سازی سرعت، مقیاس‌پذیری و انعطاف‌پذیری توسعه‌دهنده کاهش می‌دهند. آن‌ها از مدل‌های مختلف داده، از جمله key-value، document، wide-column و graph استفاده می‌کنند. به عنوان مثال برای ذخیره‌سازی با key-value (Amazon DynamoDB)، ذخیره‌سازی document (MongoDB) و ذخیره سازی graph (Amazon Neptune). پایگاه داده های NoSQL در سناریوهایی که انعطاف‌پذیری، مقیاس‌پذیری و عملکرد بسیار مهم هستند، استفاده می‌شوند.Serverless Architectureمعماری serverless یک مدل توسعه cloud-native  است که به توسعه‌دهندگان اجازه می‌دهد تا بدون پرداختن به مدیریت زیرساخت سرور، تنها بر روی کد تمرکز کنند. در معماری serverless، ارائه‌دهندگان cloud وظایفی مانند ارائه(provisioning)، مقیاس‌بندی و نگهداری را انجام می‌دهند و مقیاس خودکار (automated scaling)را بر اساس تقاضا امکان‌پذیر می‌کنند.دو مدل اصلی serverless عبارتند از Backend-as-a-Service (BaaS)وFunction-as-a-A-Service (FaaS)مانند AWS Lamda و Azure Functions. این معماری برای برنامه‌های stateless مناسب هستند و در سناریو هایی که احتمال افزایش تقاضای غیرقابل پیش‌بینی را می دهیم کاربرد دارند. معماری serverless مدیریت سرور را ساده می کند و به ویژه در ساخت RESTFul API ها، پردازش ناهمزمان، بررسی های امنیتی وCI/CD بسیار مناسب می باشد.Domain Driven Designطراحی دامنه محور (DDD) یک رویکرد توسعه نرم افزار است که توسط Eric Evans  معرفی شده که بر ایجاد درک مشترک از فضای مسئله (دامنه) بین ذینفعان فنی و غیر فنی تاکید دارد. در DDD، یک مفهوم کلیدی، زبان فراگیر(Ubiquitous) است که استفاده از واژگان مشترک توسعه دهندگان و متخصصان domain را ترویج می کند. موجودیت ها و value object ها اجزای اساسی در DDD هستند. موجودیت ها هویت مختلف دارند، در حالی که object valueها با ویژگی هایشان تعریف می شوند. این مفاهیم به مدل سازی دقیق domain کمک می کند.  Service ها در DDD منطق تجاری را در بر می گیرد که به طور طبیعی در محدوده موجودیت ها یا object value ها قرار نمی گیرد. آنها عملیات یا فعالیت هایی را نشان می دهند که بر روی عناصر domain  عمل می کنند. DDD به ویژه برای پروژه های پیچیده و در مقیاس بزرگ که درک عمیق از حوزه کسب و کار برای موفقیت بسیار مهم است مفید است.Hexagonal architectureمعماری Hexagonal (شش ضلعی) که به عنوان Ports and Adaptors شناخته می شود، یک الگوی طراحی است که با معرفی یک شکل شش ضلعی برای نمایش بصری Port های مختلف (نقاط ورودی) و Adaptor ها (اجرای) یک برنامه، به چالش های معماری layered می پردازد. هدف این الگو جدا کردن منطق اصلی کسب و کار در مرکز شش ضلعی است. اصل وارونگی وابستگی (Dependency Inversion) در معماری شش ضلعی مورد توجه است و بر وارونگی وابستگی بین آداپتورهای driving و آداپتورهای driven تأکید دارد. این وارونگی امکان انعطاف پذیری و تست آسان را فراهم می کند و به پایداری و گسترش طولانی مدت برنامه کمک می کند.از مزایای معماری شش ضلعی جداسازی کامل منطق برنامه و انعطاف پذیری در طراحی رابط ها است. این به خوبی با طراحی Domain-Driven مطابقت دارد و از خراب کاری در منطق domain جلوگیری می کند.Message Queueصف کردن Message  ها شکلی از ارتباط ناهمزمان است که به برنامه‌ها اجازه می‌دهد از طریق صف ارتباط برقرار کنند و به فرستنده کمک می کند تا بدون وقفه کار کند، به‌ویژه زمانی که سرویس مقصد مشغول یا قطع است. در Message Queue، یک صف نقش ذخیره کننده موقت بین فرستنده و گیرنده عمل می کند و پیام ها را تا زمانی که مصرف کننده آنها را پردازش کند نگه می دارد و پردازش ناهمزمان را تسهیل می کند. یک Message، معمولاً یک byte array با header، داده‌ای است که بین فرستنده و گیرنده منتقل می‌شود و وظایف یا رویدادها را نشان می‌دهد. صف کردن Message از قطع و خرابی سرویس محافظت می کند و به قابلیت اطمینان سیستم کمک می کند. در معماری میکروسرویس، صف پیام برای تسهیل ارتباط بین سرویس‌ها بسیار مهم است و به آن‌ها اجازه می‌دهد پیام‌ها را به‌صورت ناهمزمان به صف هدایت کنند و از تحویل به مقصد صحیح اطمینان حاصل کنند. صف‌های پیام مانند Kafka، Amazon SQS و RabbitMQ نقشی محوری در معماری‌های ابری مدرن دارند و بافری سبک برای ارتباطات ناهمزمان و افزایش قابلیت اطمینان، مقیاس‌پذیری و انعطاف‌پذیری سیستم ارائه می‌کنند.Container orchestrationمجتمع سازی کانتینر ها(Container orchestration) در واقع مدیریت خودکار workload های کانتینری است که به وظایفی مانند provisioning، deployment، مقیاس‌بندی، networking و load balancing رسیدگی می‌کند. نیاز به container orchestration از پیچیدگی عملیاتی ناشی از مدیریت container ها به ویژه در سیستم‌های مقیاس بزرگ با میکروسرویس‌های متعدد ناشی می‌شود. Kubernetes یک پلتفرم open source محبوب در این زمینه است که قابلیت های گسترده و رویکردی اعلامی برای automation ارائه می دهد. مجتمع سازی کانتینر ها با Docker، که پلتفرمی برای ساخت کانتینرها است متفاوت است. ابزارهای مجتمع سازی کانتینر، مانند Kubernetes، Docker Swarm و Apache Mesos چارچوب‌هایی را برای مدیریت کانتینرها و میکروسرویس‌ها فراهم می‌کنند.Static Code Analysisتجزیه و تحلیل کد static یک روش خودکار برای تجزیه و تحلیل کد منبع برای نقص و مشکلات کیفیت بدون اجرای کد است. مزایای زیادی مانند تشخیص زودهنگام باگ و بهبود کیفیت کد را ارائه می دهد. ابزارهای محبوب مانند SonarLint با IDE ها ادغام می شوند تا تجزیه و تحلیل real-time را فعال کنند. به طور کلی، تجزیه و تحلیل static به خوبی با روش‌های DevOps مدرن از طریق بازخورد اولیه(early feedback) و پیشگیری از نقص (defect prevention)هماهنگ است. هنگامی که به طور مناسب از آن استفاده می شود، ابزار ارزشمندی برای تولید نرم افزار است.  SonarLintیک ابزار تجزیه و تحلیل کد استاتیک محبوب است که به دلیل ادغام با IDE های محبوب مانندIntelliJ IDEA، Eclipse، Visual Studio و Visual Studio Code شناخته شده است. SonarLint با پشتیبانی از چندین زبان برنامه نویسی مانند جاوا، سی شارپ، جاوا اسکریپت و پایتون، بازخورد real-time را ارائه می دهد، مشکلات کدنویسی را مشخص می کند و هنگام نوشتن کد، پیشرفت هایی را پیشنهاد می کند.</description>
                <category>مجتبی خدادوست</category>
                <author>مجتبی خدادوست</author>
                <pubDate>Fri, 24 Nov 2023 23:41:32 +0330</pubDate>
            </item>
            </channel>
</rss>