<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های زیبا امیدوار</title>
        <link>https://virgool.io/feed/@m_99666406</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-16 13:22:38</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>زیبا امیدوار</title>
            <link>https://virgool.io/@m_99666406</link>
        </image>

                    <item>
                <title>بررسی استفاده ی شبکه های پیچیده ی پویا در کرونا</title>
                <link>https://virgool.io/@m_99666406/%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%DB%8C-%D8%B4%D8%A8%DA%A9%D9%87-%D9%87%D8%A7%DB%8C-%D9%BE%DB%8C%DA%86%DB%8C%D8%AF%D9%87-%DB%8C-%D9%BE%D9%88%DB%8C%D8%A7-%D8%AF%D8%B1-%DA%A9%D8%B1%D9%88%D9%86%D8%A7-ahnjhidjvozu</link>
                <description>چکیدههمه گیری بیماری کرونا در سراسر جهان، اولین پاندمی گسترده در عصر تکنولوژی بوده است. سرعت شیوع این بیماری به دلیل سهولت انتقال این ویروس از طریق هوا و قطرات تنفسی بسیار زیاد است. اقدامات اولیه ی دولت ها برای کنترل شیوع بیماری و کاهش مرگ و میر در شرایط عدم وجود واکسن و دارو، اعمال قرنطینه های سنگین و فاصله گذاری اجتماعی و توصیه به رعایت مسائل بهداشتی بود. از طرفی قرنطینه های سخت و تعطیلی های گسترده تبعات اقتصادی و روانی زیادی را برای جوامع به دنبال دارد به همین دلیل تحلیل نحوه ی شیوع بیماری و یافتن استراتژی های مناسب و بهینه برای کنترل شیوع بیماری حائز اهمیت است. به همین دلیل محققان حوزه های مختلف تلاش کرده اند تا با استفاده از روش های مختلفی از جمله استفاده از ویژگی های شبکه های پیچیده، به پیش بینی میزان و نحوه ی شیوع بیماری و شبیه سازی استراتژی های مختلف فاصله گذاری اجتماعی، واکسیناسیون، انجام تست و … به منظور کنترل بهتر بیماری روی شبکه ی اپیدمی ویروس بپردازند. همچنین با بررسی شبکه ی شیوع بیماری می توان کشورها و مناطقی که بیشترین تاثیر در شیوع بیماری دارند را شناسایی کرد و اقدامات پیشگیرانه ی مناسب را در آن ها به کار گرفت. علاوه بر این می توان با تحلیل وضعیت عوامل محیطی مانند بررسی شبکه های حاصل از ارتباطات اقتصادی، ارتباطات هوایی و زمینی و مواردی از این دست قبل و بعد از شیوع بیماری، تاثیر ویروس کرونا را بر این شبکه ها مورد بحث قرار داد.کلمات کلیدی: مدل‌سازی شیوع کرونا، شبکه‌های پیچیده، اپیدمی، کرونا، شبکه‌ی اجتماعی، مدل SIR، استراتژی‌های قرنطینهمقدمهشیوع ویروس جدید کرونا به طور کلی چالش جدیدی را برای جوامع و حتی جوامع علمی ایجاد کرد. در ابتدا به دلیل فقدان واکسن و روش های درمانی مناسب، واکنش فوری اغلب کشورهای جهان محدود کردن تماس بین افراد با الزام به ماندن آن ها در خانه بود. نتیجه ی مورد انتظار از این فاصله گذاری اجتماعی، قطع زنجیره ی انتقال ویروس بود که تا حدی محقق شد. به دلیل تاثیرات عمیق این همه گیری بر اقتصاد و روابط بین الملل، مبارزه با همه گیری covid-19 به اولویت اصلی دولت ها در بسیاری از مناطق تبدیل شده است. انتخاب یک استراتژی بهینه برای به حداقل رساندن عواقب این همه گیری حائز اهمیت است. مدل های اپیدمیولوژیکی برای شبیه سازی گسترش عفونت استفاده شده اند که اغلب آن ها بر پایه ی مدل SIR (افراد مستعد، الوده و ایمن) هستند. همچنین مدل های اپیدمیولوژیک مبتنی بر شبکه وجود دارد که در آن تعاملات انسان ها و همچنین رفتار انتقال بیماری در نظر گرفته می شود. در این شبکه ها با الوده شدن بخشی از شبکه، آلودگی در سراسر شبکه منتشر می شود. به طور کلی با بررسی شبکه های انتقال بیماری می توان مسیر انتقال بیماری را مشخص کرد و از نتایج این تحلیل ها برای کنترل گسترش بیماری و کاهش فرایندهای انتقال مضر استفاده کرد.در کنار پیش‌بینی شیوع کرونا که در اوایل پاندمی و در عدم حضور دارو و واکسن مؤثر صورت می‌پذیرفت، پژوهش‌هایی در حوزه‌ی پزشکی و دارویی به وجود آمدند که تلاش داشتند تاثیر داروهای معرفی شده را بررسی کنند و به تشخیص و تجویز بهتر و دقیق‌تر برای کاهش مرگ و میر کمک کنند. برخی از این تحقیقات با آگاهی از تاثیر روش‌هایی مانند یادگیری ماشین و شبکه‌های پیچیده تلاش کردند تا بررسی‌های دقیق‌تری را با استفاده از این روش‌ها پیش ببرند.علاوه بر این به خاطر همه‌گیری این ویروس، تقریبا تمامی کسب‌وکار‌های خرد و کلان آسیب دیدند و بنابراین نیازمندی جدیدی به وجود آمد که محققان حوزه‌های مختلف به سمت پیش‌بینی مشکلات و نحوه‌ی کاهش عواقب منفی آن بر روی کسب‌و‌کار‌های جهانی پرداختند و به این منظور از روش‌های مختلفی از جمله تشکیل شبکه‌های پیچیده و تحلیل آن‌ها، استفاده کردند.علاوه بر موارد بیان شده، تاثیر شیوع بیماری و اعمال سیاست های منع تردد بر شبکه ی ارتباطات هوایی به منظور بررسی زیان های وارده به صنعت هواپیمایی کشورها و همچنین شناسایی شهرهای با فرودگاه های پر تردد در نظر گرفته شد. در زمینه ی حمل و نقل زمینی نیز مانند شبکه ی متروی شهری، تاثیرات اعمال محدودیت ها بر شیوع بیماری بررسی شد.در بخش های بعدی این مطالعه ابتدا به بررسی ادبیات پژوهش پرداخته، سپس کارهای پیشین انجام شده در زمینه های مطرح شده بررسی می شوند. در انتها نیز کارهای آینده بیان شده و محدودیت ها و چالش های موجود در مطالعات انجام شده ذکر می شوند.ادبیات پژوهشمعیارهای شبکهبا استفاده از معیارهای مختلفی که برگرفته از ویژگی های ساختاری شبکه است، می توان به تحلیل شبکه پرداخت. برخی از این معیارها در ادامه معرفی می شوند.مرکزیت درجه (degree centrality)مرکزیت درجه نشان دهنده ی درجه ی یک گره در شبکه یعنی تعداد یال های متصل به آن است. در شبکه های جهت دار با دو معیار درجه ی ورودی (in-degree) و درجه ی خروجی (out-degree) مواجه هستیم که هر دو ممکن است به عنوان معیارهای مرکزیت در شرایط مناسب مفید باشند.مرکزیت نزدیکی (closeness centrality)این معیار بیانگر میزان فاصله ی یک گره از گره های دیگر است. اگر برای گره ای مقدار این معیار کم باشد، به این معنی است که این گره دسترسی بهتری به اطلاعات در گره های دیگر دارد و ممکن است تاثیر مستقیم بیشتری برسایرگره هاداشته باشد.این معیارازطریق فرمول زیرمحاسبه می شودکه درآن dij فاصله ی بین دو گره و n تعداد گره های شبکه است. فرمول محاسبه ی closeness centralityمرکزیت بینابینی (betweenness centrality) مرکزیت بینابینی میزان قرار گرفتن یک گره در بین گره های دیگر را اندازه گیری میکند. گره های با مرکزیت بینابینی بالا ممکن است به دلیل کنترل آنها بر اطلاعاتی که بین دیگران منتقل میشود، تاثیر قابل توجهی در شبکه داشته باشند. حذف این گره ها از شبکه بیشترین اختلال را در ارتباطات بین گره های دیگر ایجاد می کند. مرکزیت بینابینی ازطریق فرمول زیرمحاسبه می شودکه درآن ci مقداربینابینی گره ی i و gjk بین j و k است که ازi می گذرد و gjk تمام مسیرهای کوتاه بین j وk است. فرمول محاسبه ی betweenness centralityرتبه صفحه (page rank) رتبه صفحه میتواند به کشف گره های تاثیرگذار و مهمی که دامنه ی دسترسی آنها فراتر از اتصالات مستقیم آن ها است، کمک کند.ضریب خوشه بندی (clustering coefficient)‌ضریب خوشه بندی با چگالی تعداد مثلث های موجود در شبکه محاسبه میشود. این معیار از طریق فرمول زیر محاسبه می شود که در آن ci ضریب خوشه بندی گره ی i است. [21] فرمول محاسبه ی clusering coefficientاپیدمی (epidemic)اپيدمي تحليل و بررسي و مطالعه ي بيماري هاي واگيردار(contagious) و منتشر شونده است يک بحث مهمي در مباحث زيستي و بيولوژيک است يکي بيماري اپديميک يک بيماري واگيردار است که با يک پاتوژن ايجاد مي شود با يک ويروس يا يک اعمال انتشار شونده از فردي به فرد ديگر منتقل مي شود.مدل تقسیم‌بندی (Compartmental model)مدلی که در  اساس آن در سال ۱۹۲۷ طی شیوع آنفولانزای اسپانیایی توسط نویسندگان مقاله‌ی [22] برای پیش‌بینی اپیدمی معرفی شد. در این مدل افراد جامعه به چند دسته مانند مستعد(susceptiple)، آلوده (‌infectious) و بهبود یافته\فوت شده (removed) تقسیم می‌شوند. درطول دوران یک اپیدمی افراد در یکی از این دسته‌ها هستند. افراد مستعد در صورت ارتباط داشتن با افراد آلوده، با احتمالی مبتلا خواهند شد و هر فرد مبتلا پس از مدتی بهبود می‌یابد یا فوت می‌شود. این مدل طی زمانی پخته شده و وضعیت‌های مختلفی با توجه به نوع بیماری به آن اضافه شد. در این مدل برای افراد یا همان گره‌ها ویژگی‌های فردی و اجتماعی در نظر گرفته نمی‌شود و در ساده‌ترین حالت شیوع را بررسی می‌کند.[6]مدل مبنای عامل (agent-based model)در این مدل که برای مدلسازی اپیدمی از آن در ادبیات استفاده شده است. هر یک از گره‌ها به عنوان یک عامل در نظر گرفته شده‌اند، به این معنی که برای هر یک از گره‌ها ویژگی‌های رفتاری فردی و اجتماعی مانند سن، شغل و … در نظر گرفته می‌شود تا به این ترتیب بتوان پیش بینی دقیق‌تری از رفتار ویروس در داشت. [5][6]کارهای پیشینبا بررسی اولیه‌ی مقالات مختلف درباره‌ی ویروس کرونا متوجه شدیم که مقالاتی که درباره‌ی نحوه‌ی شیوع این ویروس منتشر شده اند، به سمت استفاده از شبکه‌های پیچیده‌ی پویا برای مدل‌سازی شبکه‌های اجتماعی افراد و بررسی چگونگی ارتباطات افراد با یکدیگر رفته‌اند. همچنین دسته‌ی دیگری از مقالات وجود دارند که مستقیما مرتبط با خود ویروس یا نحوه‌ی عملکرد آن نیستند، بلکه به بررسی تاثیر ویروس کرونا روی دیگر شبکه‌ها مانند شبکه‌های مالی و حمل و نقل زمینی و هوایی پرداخته‌اند.علاوه بر این مقالاتی نیز در حوزه‌ی پزشکی وجود داشتند که تلاش داشتند با مدل‌سازی روابط بین علائم و دارو‌ها  تشخیص و درمان دقیق‌تری برای بیماران ارائه کنند که البته اکثر مقالات این دسته به دلیل این‌که در حوزه‌ی پزشکی تخصصی می‌شدند و مورد بررسی قرار نگرفتند.ذکر این نکته نیز خالی از لطف نیست که تمرکز اکثر مقالات مرتبط با حوزه‌ی کرونا بر مدل سازی اپیدمی و نحوه‌ی شیوع این بیماری بود و تلاش داشتند تا با شناسایی الگوهای دقیقی از نحوه‌ی انتشار این ویروس، رفتار آن را در آینده پیش‌بینی کنند و راهکار‌های اجتماعی متناسب ارائه کنند.دلیل اصلی بررسی شیوع ویروس کرونا با استفاده از شبکه‌های پیچیده این است که نحوه‌ی انتقال این ویروس از طریق هوا و تنفس اعلام شده بود و این ارتباطات بودند که تاثیر زیادی بر شیوع این بیماری داشتند. علاوه بر این به دلیل این که برای مدت طولانی هیچگونه واکسن و داروی قطعی برای کنترل و درمان این بیماری وجود نداشت، تلاش‌های اولیه‌ی محققان حوزه‌های مختلف، متمرکز بر ارائه‌ی راهکار‌های اجتماعی جهت کنترل شیوع این بیماری از طریق اعمال محدودیت‌های توصیه شده‌ی سازمان بهداشت جهانی بود. همچنین تاثیر عوامل مختلف اقتصادی، اجتماعی، فرهنگی و بهداشتی، بر گسترش بیماری نیز در این مقالات مورد مطالعه و بررسی قرار گرفته‌اند. بنابراین می‌توان گفت که اکثر مقالات این حوزه با مدل‌سازی‌های مختلف، محاسبه‌ی معیار‌های مختلف شبکه و شبیه سازی، جهت پیش‌بینی نحوه‌ی شیوع کرونا در سناریو‌های مختلف تلاش کرده‌اند  و به این ترتیب بتوانند با ارائه‌ی راهکار‌های موثر به تصمیم‌گیری‌های کلان در سطح کشور‌ و بین المللی کمک کنند تا کنترل بهتری بر روی شیوع و پیامد‌های ناگوار حاصل از آن داشته باشند.پژوهش‌های حوزه‌ی اپیدمی و نحوه‌ی شیوع کرونابه طور کلی می توان مطالعاتی که درزمینه‌ی اپیدمی و نحوه‌‌ی انتشار این ویروس انجام شده است را به چند دسته ی کلی تقسیم کرد:۱- مطالعات مبتنی بر ویژگی های توپولوژیکی شبکه ی انتقال بیماری۲- بررسی نحوه ی شیوع بیماری با استفاده از مدل سازی به روش compartmental based modeling۳- بررسی نحوه ی شیوع بیماری با استفاده از مدل سازی به روش agent-based modeling۴- ترکیب روش‌های compartmental based modeling و agent-based modeling۴- مطالعاتی که برای مدل سازی از روش‌های آماری در ترکیب با شبکه‌های پیچیده استفاده  کرده‌اند.۵- بررسی تاثیر ویروس کرونا بر سایر شبکه ها مانند شبکه های مالی، حمل و نقل زمینی و هواییدر ادامه‌ی به توضیح مقالات بررسی شده در هر یک از دسته بندی‌های ذکر شده می پردازیم.مطالعات مبتنی بر ویژگی های توپولوژیکی شبکه ی انتقال بیماریدر مقالات بررسی شده در این حوزه با تشکیل شبکه ی مرتبط با شیوع کرونا در جهان و یا مناطق مختلف یک کشور می توان به بررسی نودهای کلیدی و مناطق تاثیر گذار در شیوع بیماری پرداخت. به طور کلی در یک شبکه‌ی ساخته شده، نودها، مربوط به یک کشور و یا منطقه هستند.پس از ساخت شبکه‌ی مرتبط، correlation coefficient نرخ رشد مبتلایان برای هر جفت منطقه  محاسبه می شود و اگر این مقدار از یک مقدار آستانه ای بیشتر باشد، بین دو منطقه در شبکه یال در نظر می گیریم. سپس با بررسی شبکه ها می توان به موارد زیر دست یافت: بیماری در صورتی پراکنده می شود که احتمال انتقال آن از آستانه ی انتشار (propagation threshold) شبکه بیشتر باشد.اگر شبکه ی حاصل small world باشد (شبکه های با average shortest path پایین و clustering coefficient بالا) در آن انتقال بیماری به شکل موثرتری صورت می پذیرد. در مطالعات انجام شده small world بودن شبکه های شیوع بیماری مشخص شده بود.شبکه های دارای community structure هم در ترویج و هم در پیشگیری از شیوع انتقال بیماری بسیار موثر هستند. داشتن ساختار انجمنی یکی از ویژگی های این شبکه های شیوع بیماری است و در این شبکه ها مقدار modularity بالا است. با تشخیص community ها می توان نتیجه گرفت رفتار این مناطق در شیوع بیماری یکسان است و می توان سیاست های کنترلی مشابه برای آن ها اعمال کرد. به عنوان مثال در یکی از شبکه های ساخته شده به این روش کشورهای ایران، کره ی جنوبی و ایتالیا در یک community قرار گرفته بودند.بررسی centrality مربوط به نودها، اطلاعات مفیدی به ما می دهد. نودهایی که از منظر یک یا چند مورد از معیارهای مرکزیت مانند degree centrality، eigenvector centrality، betweenness centrality و closeness centrality مقدار بالایی داشته باشند، بیشترین تاثیرگذاری را در شبکه ی انتقال بیماری دارند و باید به آن ها برای کنترل شیوع بیماری در جهان توجه کرد. [4] [3]همچنین نوع دیگری از مطالعات انجام شده که مرتبط با ویژگی های ساختاری شبکه هستند مربوط به تحلیل تاثیر و ارتباط فاکتورهای اجتماعی و اقتصادی مانند سطح خدمات پزشکی، میزان تولید ناخالص ملی، تراکم جمعیت، صادرات و واردات با متصل بودن شبکه ی انتقال بیماری است. به همین منظور با استفاده از یک مدل رگرسیون ارتباط بین فاکتورهای اجتماعی و اقتصادی و معیارهای مرکزیت و connected بودن شبکه مانند closeness centrality، betweenness centrality، page rank و … اندازه گیری شد. نتیجه ها حاکی از آن بود که معیارهایی مانند تراکم جمعیت، صادرات و هزینه های دولت به طور قابل توجهی باعث افزایش معیارهای connected بودن شبکه شده و چنین کشورهایی از شیوع ویروس کرونا بیشتر رنج می برند.عواملی مانند واردات و امید به زندگی بالا و خوب بودن سطح خدمات پزشکی باعث کاهش اتصالات در شبکه ی شیوع بیماری می شود و کشورهای با این ویژگی کمتر در معرض آسیب قرار می گیرند. [1]علاوه بر این تعدادی از مقالات پس از تشکیل شبکه‌ی ارتباطات میان استان‌ها یا کشور‌ها با بررسی density این شبکه طی دوره‌های زمانی مشخص و مقایسه‌ی ارتباط این density‌های با داده‌های واقعی مربوط به آمار مبتلایان، به ارتباط خطی میان افزایش density و افزایش تعداد مبتلایان هر یک از نود‌ها، پی بردند. [10]بررسی نحوه ی شیوع بیماری با استفاده از مدل سازی به روش compartmental based modelingدر مدل سازی به این روش مدل های اپیدمیولوژیکی رایج مانند SIR، SEIS و … برای مدلسازی نحوه ی گسترش بیماری، تعداد کل مبتلایان یا طول مدت یک اپیدمی به کار می روند.  در اغلب مطالعات از ترکیب این روش با روش های شبیه سازی استفاده شده است. در یکی از مقالات بررسی شده با استفاده از یک مدل توسعه یافته ی SEIR برای توصیف فرایند اپیدمی، تاثیر انجام آزمایش های روزانه تشخیص کرونا بر تعداد مبتلایان بررسی شده است. در این مدل اپیدمی هر فرد در یکی از شش وضعیتی که در شکل دیده می شود، قرار می گیرد:۱- مستعد بیماری یا susceptible۲- دوره ی نهفتگی بیماری یا latent۳- مبتلای بی علامت یا asymptomatic infection۴- مبتلای با علامت یا symptomatic infection۵- بهبود یافته یا recovered۶- مرده  یا deadروند گسترش بیماری به شکل زیر است. ابتدا یک فرد به طور تصادفی به عنوان منبع عفونت انتخاب می شود. (وضعیت IS). در هر بازه ی زمانی t یک فرد مستعد به صورت تصادفی با یکی از اطرافیانش ارتباط برقرار می کند. این فرد مستعد با احتمال ? با افراد مبتلای بدون علامت و با احتمال λ با افراد مبتلای با علامت در ارتباط است. وقتی فرد آلوده می شود وارد مرحله ی نهان بیماری می شود و پس از گذراندن این مرحله با احتمال pa مبتلای بی علامت و با احتمال pa-1 مبتلای علامت دار می شود. همچنین پس از این مرحله افراد با احتمال ? بهبود می یابند و با نرخ ? می میرند. این روند ادامه پیدا می کند تا جایی که هیچ گونه  آلودگی ای وجود نداشته باشد. با توجه به وجود فاصله بین زمان شروع بیماری و زمان انجام تست، در این مطالعه معیار ? تعیین کننده ی اولویت آزمایش افرادی است که با فرد بیمار تایید شده ارتباط نزدیکی داشتند. اگر 1= ? باشد، اولویت تست با تمام افرادی است که در ارتباط نزدیک با فرد بیمار بوده اند و 0= ? به معنای انجام تست به صورت تصادفی است. در این مطالعه شبکه با استفاده از روش باراباشی آلبرت تولید و برای توصیف ساختار جمعیت و شبیه سازی اپیدمی در آن ها استفاده شده است. با بررسی تاثیر حجم آزمایش روزانه و زمان شروع آزمایش، این نتیجه حاصل شد که با افزایش حجم آزمایش روزانه و شروع زودهنگام انجام آزمایش، میزان شیوع بیماری و تعداد مبتلایان در پیک پاندمی کمتر می شود. [12]از جمله مطالعات دیگری که در این دسته انجام شده است، بررسی اثر واکسن روی کنترل اپیدمی است. برای مطالعه ی تاثیر واکسیناسیون بر پویایی اپیدمی کرونا، در مدل های اپیدمی رایج یک وضعیت جدید به عنوان وضعیت واکسینه شده اضافه شده است. سپس روی یک شبکه ی ساخته شده بر اساس مدل اردوش رینی با تعداد نودهای یک میلیون شبیه سازی دو استراتژی متفاوت واکسیناسیون انجام شد. مدل اپیدمی در نظر گرفته شده مدل SEIRV است که در آن وضعیت های  Susceptible (مستعد)، Exposed (در معرض، آلوده شده ولی بدون علامت و ناقل)، Infected (آلوده ی دارای علامت)، Recovered (بهبود یافته و ایمن در برابر بیماری) و Vaccinated (واکسینه شده) در یک شبکه ی ER در یک بازه ی زمانی ۳۶۰ روزه در نظر گرفته می شود.در ابتدا همه ی نودها در این مدل در وضعیت S هستند و تنها یک بیمار صفر داریم که در معرض آلودگی است. در هر روز فرایند اپیدمی، بین افراد سالم و فرد مبتلا تعاملاتی وجود دارد که می تواند منجر به انتقال بیماری شود. هر فرد آلوده با احتمال β بیماری را منتقل می کند و پس از گذراندن دوره ی بیماری به وضعیت R می رود. با توجه به اینکه  هر روز تماس بین افراد مبتلا و واکسینه شده وجود دارد، هدف اصلی واکسیناسیون در این مدل جلوگیری از انتقال است. افراد واکسینه شده پس از تماس با افراد ناقل بدون علامت با احتمال (1−η)β(t)  به وضعیت E می روند که در آن η اثر بخشی واکسن است. افرادی که واکسن برای آنها موثر است در حالت V باقی می مانند در حالی که افرادی که واکسن برای آنها موثر نیست به حالت E و بعداً به حالت I می روند و پس از آن به حالت R می روند. علاوه بر این، بسته به استراتژی واکسیناسیون در حین مدل سازی، زمان واکسیناسیون و همچنین پوشش جمعیت متفاوت است. دو استراتژی برای واکسیناسیون در نظر گرفته شده است: ۱- استراتژی واکسیناسیون دسته جمعی  یا انبوه (classical mass vaccination) که در آن درصدی از افراد جامعه واکسینه می شوند. ۲- استراتژی واکسیناسیون حلقه ای (ring vaccination) که در این استراتژی افراد در تماس با فرد در معرض ویروس واکسینه می شوند.چندین سناریو در این مطالعه بررسی شده است. سناریوی اول مربوط به استفاده از استراتژی واکسیناسیون دسته جمعی با پوشش ۱۰ تا ۱۰۰ درصدی جمعیت و اثربخشی ۴۰ تا ۱۰۰ درصدی واکسن در نظر گرفته شد. برای استراتژی واکسیناسیون حلقه ای ۱ تا ۳ درصد افراد قبل از واکسیناسیون در معرض بیماری قرار گرفته بودند. نتایج حاصل از شبیه سازی این سناریوها نشان داد که در استراتژی واکسیناسیون انبوه زمانی که کارایی واکسن ۴۰ درصد باشد، پوشش جمعیتی ۵۰ درصد یا بیشتر برای دستیابی به پیک بیماری با تعداد مبتلایان کمتر از ۱۰ درصد جمعیت نیاز است.  با اثربخشی ۶۰ درصدی واکسن، پوشش بیش از ۷۰ درصد و بالاتر، تعداد مبتلایان به طور قابل توجهی کم می شود و زمانی که پوشش واکسیناسیون بیش از ۸۰ درصد باشد، پیک عملا حذف می شود. علاوه بر این، موارد کم عفونت زمانی مشاهده می شود که ٪۷۰ یا بیشتر از جمعیت واکسینه شده باشند و اثربخشی واکسن ٪۸۰ باشد. از سوی دیگر، واکسنی که ۱۰۰ درصد کارآمد است، به واکسیناسیون ۶۰ درصدی جمعیت نیاز دارد تا اطمینان حاصل شود که پیک رخ نمی دهد. از استراتژی واکسیناسیون حلقه ای در شرایطی استفاده می شود که حدود ۱ تا ۳ درصد افراد قبل از شروع واکسیناسیون در معرض بیماری قرار گرفته اند. در این سناریو تعداد موارد آلوده به طرز قابل توجهی کمتر از روش واکسیناسیون کلاسیک است و حذف پیک بیماری اتفاق محتمل تری است. در مقایسه با واکسیناسیون انبوه، درصد کمتری از جمعیت باید هنگام استفاده از پروتکل واکسیناسیون حلقه ای واکسینه شوند. این امر اهمیت ردیابی مبتلایان و افراد در تعامل با آن ها را نشان می دهد. [17]بررسی نحوه ی شیوع بیماری با استفاده از مدل سازی به روش agent-based modelingاستفاده از این روش در مقالات برای انجام شبیه‌سازی است. این شبیه‌سازی به دو منظور می‌تواند انجام پذیرد : ۱) پیش‌بینی روند شیوع بیماری با داده های موجود بدون دخالت هیچ گونه محدودیتی ۲) پیش‌بینی تاثیر محدودیت‌های متنوعی که سازمان بهداشت جهانی اثربخشی آن‌ها را تایید کرده است، بر داده‌های موجود و تعیین بهترین ترکیب و میزان این محدودیت‌هادر هر دو دسته‌ی ذکر شده به دلیل تفاوت‌های فرهنگی موجود در هریک از کشور‌ها و پاسخ های متفاوتی که افراد مختلف به محدودیت‌ها می‌دهند، اغلب این شبیه‌سازی‌ها برای صرفا برای بک منطقه انجام شده‌اند، برای مثال با استفاده از داده‌های کشور عربستان، این شبیه‌سازی را اجرا کردند.مقالات این دسته، اغلب علاوه بر استفاده از agent-based modeling از مدل‌های مختلفی از SIR نیز استفاده کردند و تاثیر محدودیت‌های مختلفی مانند قرنطینه، فاصله‌گذاری اجتماعی، رهگیری مخاطبین و … را با شبیه سازی بر داده‌های موجود بررسی کرده‌اند.در این دسته از مقالات برای مدلسازی شبکه‌های اجتماعی از دو روش مدلسازی مبتنی بر روش‌های مدل سازی مرسوم مانند باراباشی آلبرت و واتس اشترگاتز و مدلسازی با استفاده از ویژگی های افراد استفاده شده است یعنی برای تشکیل شبکه‌ی اجتماعی مرتبط با هر منطقه فقط از روش‌ها مدل‌سازی استفاده نشده است بلکه با داشتن اطلاعات کمی از افراد جامعه مانند جنسیت، گروه سنی، مکان زندگی و … هر نود را با یک بردار از این ویژگی‌ها توصیف می‌کنند. در ادامه برای تعیین ارتباطات این افراد در وضعیت‌های مختلف مانند ارتباطات خانوادگی، کاری و تصادفی با استفاده از ویژگی‌های هر نود تعیین می‌کنند که کدام نود‌ها با یکدیگر با احتمال بالایی ارتباط خواهند داشت، این احتمال معمولا بیشترین تاثیر را از مکان زندگی افراد میپذیرد به این معنی که هر چه مکان زندگی افراد مختلف به یکدیگر نزدیک‌تر باشد احتمال ارتباط آن‌ها با یکدیگر بیشتر است. [7][11]با استفاده از شبکه‌های تولید شده برای تعیین تاثیرمحدودیت‌های مرسوم بر روی کنترل شیوع این بیماری  با تقسیم افراد جامعه(نود‌ها) به دسته‌های مختلفی که در مدل SIR معرفی شدند و تعیین تعدادی نود آلوده‌ی اولیه برای شبیه سازی فاصله گذاری اجتماعی متمرکز تمامی یال‌های بخشی از شبکه که قصد تعطیلی آن را دارند،قطع می‌کنند و سپس در بازه‌های زمانی مختلف به بررسی تاثیرگذارترین مدت زمان برای فاصله گذاری اجتماعی متمرکز(Centralized strategy) و سپس اعمال شبیه‌سازی فاصله‌گذاری اجتماعی غیر متمرکز (Decentralized strategy) که از طریق حذف یال‌های غیر ضروری با توجه به وزن و نوع یال‌ها حاصل میشود، پس از دوره‌ی تعطیلی پرداختند تا با این ترکیب هم شیوع کرونا کنترل شود و تعداد افراد کمتری آسیب ببینند و هم به لحاظ اقتصادی فشار کمتر به به جامعه وارد شود. [13]نتایج باید در نظر داشت که این تعطیلی‌ها به شکل‌های متفاوتی در هر کشور اعمال می‌شود چرا که تفاوت‌های فرهنگی و بازخوردهای متفاوت انسانی هر کشور در تاثیر محدودیت‌های ذکر شده، موثر است . مواردی مانند میزان پایبندی افراد جامعه به قرنطینه ی زودهنگام خود پس از ابتلا و یا میزان پایبندی سازمان‌ها به تعطیلی تعیین شده که این موارد با اتخاذ تصمیم‌های مناسب برای پاداش  و یا تنبیه عوامل می‌توانند تا حد مناسبی کنترل شوند.قرنطینه‌های طولانی مدت تاثیر چشم‌گیری در کاهش تعداد مبتلایان و مرگ و میر افراد در پیک‌های کرونا و احتمال بروز موج دوم بیماری دارند اما این مدت زمان طولانی باعث ضررهای هنگفت اقتصادی و تاثیرات مخرب روانی برای جوامع و کشور‌ها است. [2]رهگیری مخاطبین اول افراد علامت دار و یا افراد با تست مثبت یکی از سیاست های انجام شده است.با شبیه‌سازی‌های انجام شده مشخص شده است که صرفا رهگیری و قرنطینه‌ی مخاطبین اول افراد مبتلا نمی‌تواند به خوبی باعث کنترل شیوع بیماری کرونا شود چرا که افرادی وجود دارند که به بیماری مبتلا شده‌اند اما هیچگونه علائمی از خود بروز نداده‌اند و یا در مرحله‌ی پنهان بیماری قرار دارند و بیماری خود را به دیگر افراد جامعه نیز منتقل می‌کنند. به همین دلیل رهگیری و قرنطینه‌ی مخاطبین دوم افراد مبتلا تاثیر زیادی در جلوگیری از شیوع ویروس میان تعداد زیادی از افراد جامعه شود. [8]از آنجایی که با رهگیری و قرنطینه‌ی مخاطبین دوم افراد مبتلا بخش زیادی از افراد جامعه باید قرنطینه شوند، بهترین روش،  قرنطینه‌ی افراد مبتلا و مخاطبین اول این افراد و اعمال فاصله گذاری اجتماعی برای دیگر افراد جامعه است.  [8]نتایج این دسته از تحقیقات اغلب بهترین روش را استفاده‌ی همزمان از دو روش فاصله گذاری اجتماعی غیر متمرکز و متمرکز می‌دانستند.[2][8]این نتایج نشان می‌دهد که با شروع هر چه زودتر فاصله‌گذاری متمرکز پس از مشاهده‌‌ی اولین موارد ابتلا، تعداد افرادی که طی دوره‌ی پیک به ویروس مبتلا می‌شوند کمتر خواهد شد و علاوه بر این تعداد افرادی که بر اثر کرونا فوت می‌شوند نیز کاهش چشم گیری دارد. [13]به طور کلی بررسی‌ها ثابت کرده است که اعمال محدودیت‌ها باید به شکل مدیریت شده و منظم و از طرف دولت و سازمان‌های ذیربط و به صورت هماهنگ شده باشد تا بیشترین میزان تاثیر را داشته باشد[16]پیش‌بینی روند شروع بیماری با داده‌های موجود بدون دخالت هیچ‌گونه محدودیتیاین دسته از تحقیقات پس از تشکیل شبکه‌ی اجتماعی صرفا به شبیه‌سازی روند شیوع بیماری با داده‌های موجود از تعداد روزانه‌ی مبتلایان، مجموع تعداد مبتلایان، تعداد مرگ و میر روزانه و….. می‌پردازند تا تعیین کنند که با همین روند که یک کشور در کنترل شیوع کرونا پیش گرفته‌است، در آینده چه میزان شیوع و مرگ و میر به وجود خواهد آمد.بنابراین با استفاده از نتایج این گونه تحقیقات، سیاست‌مدران می توانند تعیین کنند که آیا تصمیم‌گیری‌هایشان نیازمند بهبود است یا خیر.بررسی نحوه‌ی شیوع بیماری با استفاده از روش‌های آماریاین دسته از بررسی‌ها با استفاده از روش‌های پیش بینی مرسوم مانند رگرسیون تلاش‌کردند که با تطبیق دادن منحنی‌هایی متناسب با داده‌های واقعی، ادامه‌ی روند شیوع را در آینده پیش بینی کنند.برخی از این مقالات با استفاده از رگرسیون ساده به پیش بینی روند پرداخته‌اند اما برخی دیگر برای پیش بینی دقیق تری از روند و تطابق بیشتر داده‌های موجود با منحنی از روش‌هایی مانند رگرسیون تکه‌ای استفاده کرده‌اند؛ در این بین تعدادی از تحقیقات گام را فراتر گذاشته و تلاش کردند تا رگرسیون تکه‌ای را با استفاده از انجمن‌ها در شبکه‌های پیچیده‌ی پویا و روش‌های دیگر دقیق‌تر کنند تا با اطمینان بالایی بتوانند الگوی شیوع را در بازه‌های زمانی دورتر نیز پیش بینی کنند. [9]پژوهش‌های مرتبط با تاثیر کرونا بر دیگر شبکه‌هامقالات این حوزه به بررسی شبکه‌های حمل و نقلی، مالی و دیگر شبکه‌ها طی دوران کرونا کردند. برخی از این مقالات به مقایسه‌ی وضعیت شبکه‌ها در دوران کرونا و پیش از دوران کرونا پرداخته‌اند و با محاسبه‌ی معیار‌های مختلف دلایل تغییر شبکه‌ها در دوران کرونا را بیان کردند اما برخی دیگر تلاش کردند تا راهکار هایی برای تغییر این شبکه‌های پیشنهاد دهند تا عواقب منفی کمتری گریبان گیر روال عادی این شبکه‌ها شود.از جمله مقالاتی که به بررسی شبکه‌ی بازار‌های مالی جهانی پرداخته می‌توان به [15] اشاره کرد. این مقاله به مقایسه‌ی این بازار‌ها پیش و پس از شیوع ویروس کرونا پرداخته است و با مقایسه‌ی معیار‌های شبکه‌ای دلایل مرتبط با تغییر این معیار‌ها طی دوران کرونا را بیان کرده است.از آن‌جایی که طی دوران کرونا به دلیل قرنطینه اقتصاد جهانی تحت تاثیر شدیدی قرار گرفت بنابراین در این مقاله به بررسی بازار‌های مالی جهانی و تاثیر آن‌ها بر یکدیگر طی دوران کرونا و مقایسه‌ی تاثیر کرونا و پاندمی بر بازار‌های مالی جهانی پرداخته است. نویسندگان این مقاله با تشکیل دو شبکه‌‌‌ی مختلف از ۲۰ کشور G20 طی دو بازه‌ی زمانی از آگوست ۲۰۱۹ تا ۳۱ دسامبر ۲۰۱۹ و ۱ ژانویه ۲۰۲ تا ۱۵ مارچ ۲۰۲۰ به تحلیل ارتباطات داخلی سیستم مالی و سر ریز ریسک‌ها مالی کشور‌های مختلفی که تحت تاثیر کرونا بودند، پرداختند. یال‌های میان گره‌ها با استفاده از معیار Granger Casuality که برای تعیین میزان همبستگی اقتصاد کشور‌ها با بررسی نمودار سری زمانی کشور‌ها، تعیین شدند.اهمیت هر گره در این مقاله با توجه به معیار‌های مرکزیت گزارش شده در مقاله‌ی دیگری تعیین شدند.پس از بررسی معیار‌های مرکزیت گره‌ها از جمله مرکزیت درجه، نزدیکی، بینابینی و همچنین clustering coefficient در هر دو شبکه به مقایسه‌ی مقادیر به دست آمده در دو بازه‌ی زمانی پرداخته است. طی این بررسی‌ها به این نتیجه رسیدند که کشور‌هایی که از لحاظ اقتصادی پیش از دوران کرونا قوی بودند و میزان مرکزیت چشم‌گیری نسبت به دیگر کشور‌ها داشتند، در دوران کرونا تغییر چشم‌گیری در معیار‌ها برایشان به وجود نیامده است. به طور کلی با بررسی دو شبکه به این نتیجه رسیدند که در دوران کرونا تمامی کشور‌ها مقادیر معیار‌هایشان افزایش پیدا کرده است که نشان دهنده‌ی افزایش چشم‌گیر همبستگی اقتصادی میان کشورهاست. برای مثال در دوران پیش از کرونا فقط کشور‌هایی مانند آمریکا، انگلیس، آلمان و تعداد دیگری از کشور‌ها اروپایی با یکدیگر تشکیل انجمن می‌دادند که نشان دهنده‌ی ارتباطات بالایی اقتصادی و سیاست‌های همگرای این کشور‌ها بود؛ اما در دوران کرونا کشور‌هایی مانند کره‌ی جنوبی که تقریبا در هیچ انجمنی نبودند، وارد انجمن‌ها شدند و تغییرات بازار‌های مالیشان سبب تغییر در بازار‌های مالی کشور‌های دیگر موجود در انجمن شد. همچنین افزایش معیار clustering coefficient می‌تواند زنگ خطری برای اقتصاد جهانی باشد، چرا که نشان دهنده‌ی این است که بازار‌ها مالی کشور‌های مختلف به شدت به یکدیگر وابسته شدند و بنابراین در صورت بروز ریسک یا رکودی در یکی از بازار‌ها، بازار‌های دیگر نیز خیلی سریع‌تر از قبل تاثیر می‌پذیرند و پیش از این‌که بتوانند برای این رکود آماده شوند، با عواقب منفی آن باید دست و پنجه نرم کنند. علاوه بر این در این مقاله بیان شده است که قدرت زیاد برخی کشور‌ها با توجه به معیار‌های محاسبه شده، برای اقتصاد جهانی معنی خوبی ندارد، چرا که در صورتی که خطر و رکودی در بازار این کشور‌ها پیش بیاید، به سرعت تمامی دیگر کشور‌ها درگیر می‌شوند. همچنین به شکل محدودی به دلایل تغییر معیار‌های شبکه‌ای برخی از کشور‌ها از جمله روسیه پرداخته است که با بالا رفتن قیمت نفت طی این دوران، روسیه توانست تاثیر خیلی زیادی بر بازار‌های مالی بگذارد.در مطالعه ی دیگری [18] تاثیر ویروس کرونا بر شبکه ی متروی شهر مکزیکوسیتی بررسی شده است.یکی از استراتژی هایی که دولت مکزیک برای مقابله با همه گیری انجام داد، قطع فعالیت ۳۶ ایستگاه مترو (حدود ۲۰ درصد از سیستم مترو) با هدف کاهش تعداد مسافران در خطوط مترو و قطارها و کاهش ازدحام، بود. برای قطع فعالیت ایستگاه هایی در نظر گرفته شدند که مسافران کمتری داشتند.در این مطالعه بررسی شده است حذف این ایستگاه ها بر ویژگی های ساختاری شبکه ی مترو قبل از حذف تاثیر زیادی می گذارد یا خیر. به همین منظور شبکه ای از وضعیت ایستگاه های مترو و ارتباط بین آن ها قبل از توقف فعالیت ایستگاه های در نظر گرفته شده و پس از حذف ایجاد شده است. در این شبکه ایستگاه های مترو نودهای شبکه و لینک ها مشخص کننده ی ارتباط بین ایستگاه ها هستند. تصویری از شبکه ی ساخته شده پس از حذف ایستگاه های مورد نظر در زیر مشاهده می شود:شبکه ی متروی مکزیکوسیتیاز ساخت و بررسی شبکه ی توضیح داده شده می توان نتیجه گرفت تصمیم دولت در توقف فعالیت تعدادی از ایستگاه ها تصمیم درستی بوده است، زیرا با بررسی ویژگی های توپولوژیکی شبکه قبل و بعد حذف ایستگاه ها می توان مشاهده کرد که تغییر عمده ای در وضعیت connected بودن شبکه ایجاد نشده است و مقادیر betweenness centrality، closeness centrality، densityو ... شبکه تغییر زیادی نکرده است. به عبارتی می توان گفت حذف این ایستگاه های غیر مهم تاثیری در robustness  شبکه نداشته و robustness  شبکه به طور کلی حفظ شده است.یکی از بررسی ها در حوزه ی تاثیر ویروس کرونا بر وضعیت خطوط حمل و نقل هوایی است. در مطالعات انجام شده در این حوزه، شهرها به عنوان نودهای شبکه در نظر گرفته می شوند و اگر بین دو شهر پروازی در یک بازه ی زمانی خاص وجود داشت (بازه ی زمانی ۷ روزه به عنوان مثال) یک لینک بین دو نود در نظر گرفته می شود. وضعیت این شبکه در یک بازه ی زمانی کوتاه قبل از شیوع کرونا و پس از شیوع آن و با اعمال محدودیت های تردد، در نظر گرفته شد. بررسی ها نشان داد که علاوه بر کم شدن تعداد نودها و لینک ها در شبکه به طور قابل توجه، average shortest path به طور قابل توجهی افزایش می یابد. همچنین پس از شیوع ویروس نودهایی در شبکه که betweenness centrality بالایی داشتند، در واقع شهرهای توریستی بوده اند که پس از شیوع بیماری betweenness centrality آن ها به تدریج کاهش یافته است. نکته ی قابل توجه در این بررسی ها این است که نودهایی که قبل از شیوع ویروس و ممنوعیت تردد، دارای degree centrality بالا و betweenness centrality پایینی بودند ( در واقع نودهای حاشیه ای شبکه تا قبل از شیوع ویروس و یا پایتخت های سیاسی)، به تدریج betweenness centrality آن ها افزایش یافت. [19][20]پژوهش‌های حوزه‌ی دارو و پزشکیمطالعه‌ای که در این حوزه بررسی شد و به شکل تخصصی درباره‌ی داروها و علائم ویروس کرونا تمرکز نداشت، مقاله‌ی [14] است.در این مقاله با استفاده از سوابق دارویی الکترونیکی در بیمارستانی در ووهان، علائم شایع بیماران مبتلا به کرونا و داروهایی که برای درمان این بیماران تجویز شدند، استخراج شده است. در این پژوهش از سه دسته داده استفاده شده است که هر یک از منابع مختلفی به دست آمده‌اند.اطلاعات مرتبط با داروهای تجویزی از سیستم ثبت دستورات پزشک به دست آمده‌اند، دسته‌ی بعدی اطلاعات که علائم مشخصه‌ی بیماری است از جدول یادداشت ترخیص بیماران استخراج شدند و در نهایت اطلاعات مرتبط با علائم هر یک از بیماران از جدول یادداشت پذیرش بیماران جمع آوری شدند. پس از این که این اطلاعات با روش‌های مختلفی مانند کاوش اصطلاحات، استاندارد سازی کلمات و … پردازش شدند، برای ساختن شبکه‌ی پیچیده‌ی نهایی استفاده شدند.در این شبکه که یک شبکه‌ی بدون جهت است،  داروها و علائم به عنوان گره در نظر گرفته شدند. در صورتی که هر دو تا از این گره‌ها با هم پیش آمده باشند، بینشان یک یال وصل می‌شود و در صورتی که این گره‌ها بیش از یک‌بار با هم پیش آمده باشند، به یال‌های موجود وزنی متناسب با تعداد دفعاتی که با هم اتفاق افتاده‌اند، داده شده است.در ادامه دو شبکه‌ی مجزا از دارو‌ها و علائم نیز ساخته شدند تا معیار‌ها مورد نظر به صورت جدا گانه بر روی هر یک برای به دست آوردن اطلاعات مورد نظر اعمال شوند. شبکه‌ی علائم با مقداردهی اولیه‌ی تب و سرفه ساخته شد و در نهایت به ۸۳ گره و ۱۰۱۲۶ یال رسید.شبکه ی علائم بیماری کرونابه همین ترتیب شبکه‌ی دارو‌ها نیز با دو گره Radix Glycyrrhizae و Rhizoma Pinelliae Preparatum مقداردهی اولیه شد تا شبکه‌ای با ۳۱۶ گره و ۲۱۶۳۲۷ یال به دست آیند.شبکه ی داروهای بیماری کروناپس از تشکیل شبکه‌ی مورد نظر، معیار‌های مختلف مرکزیت مانند مرکزیت بینابینی، مرکزیت درجه، مرکزیت نزدیکی، مرکزیت بردار ویژه و … محاسبه شدند. علاوه بر این معیار‌ها با استفاده از دو روش یادگیری ماشین Skip-Gram و خوشه‌بندی طیفی، انجمن‌های موجود در این شبکه نیز شناسایی شدند.پس از محاسبه‌ی معیار‌های مرکزیت در هر دو شبکه، ۲۰ علامت و داروی اصلی و تاثیر‌گذار کرونا شناسایی شدند.علامت های اصلی دیده شده در بیماران مبتلا به کروناداروهای تاثیرگذار در درمان بیماری کرونادر نهایت با استفاده از روش‌های یادگیری ماشین، انجمن‌های موجود در این شبکه‌ها نیزشناسایی شدند و به این ترتیب ۸ گروه از علائم شناسایی شدند که در کنار یکدیگر رخ می‌دهند و به همین ترتیب هشت گروه از دارو‌ها شناسایی شدند که می‌توانند برای علائم مرتبط تجویز شوند. در انتهای این پژوهش با مقایسه‌ی دارو‌ها و علائم شناسایی شده با موارد که سازمان بهداشت جهانی به عنوان راهنما اعلام کرده است، با دقت بالایی همسانی داشتند و بنابراین پزشکان از این پژوهش می‌توانند برای تجویز داروی مؤثر‌تر و شناسایی دقیق‌تر استفاده کنند.لازم به ذکر است که در این مقاله با بررسی روش‌های یادگیری ماشین مختلف و محاسبه‌ی معیار پیمانه‌ای بر روی شبکه‌ها، روشی انتخاب شد که انجمن‌هایی که تشخیص داد، دارای بیشترین مقدار معیار پیمانه‌ای بودند و از آن برای تعیین دسته بندی علائم و دارو‌ها استفاده شد.کار‌های آیندهبا بررسی‌های انجام شده در این حوزه و با توجه به وضعیت فعلی کرونا که تقریبا می‌توان گفت مهار شده است اما همچنان موج‌هایی در سراسر جهان ایجاد می‌کند، دیگر محققان به بررسی وضعیت شیوع بیماری بدون در نظر گرفتن هیچگونه ایمنی برای افراد نمی‌پردازند، چرا که تعداد زیادی از افراد جامعه واکسینه شدند و تعداد زیادی نیز به این بیماری مبتلا شدند و به همین دلیل تا مدتی این افراد ایمن خواهند بود.پژوهش‌هایی که پیش از این در حوزه‌ی شیوع کرونا صورت گرفتند، تلاش داشتند با اعمال قرنطینه و فاصله گذاری اجتماعی و رعایت مواردی مانند زدن ماسک به بررسی شیوع بیماری بپردازند؛ اما در شرایط فعلی که اغلب افراد به دلیل خسته شدن از شرایط موجود و وجود اطمینان ناشی از واکسینه شدن، کمتر توصیه های بهداشتی را رعایت می کنند، تحقیقات این حوزه پس از این می‌تواند به سوی پیش بینی احتمال رخ دادن موج‌های جدید بیماری با در نظر گرفتن ایمنی حاصل از تزریق واکسن و میزان افرادی که واکسینه شدند و تعداد دوز‌هایی که تزریق شدند به پیش‌بینی موج‌های پیش رو بپردازند.محدودیت‌ها و چالش‌هااز آنجایی که با شبیه‌سازی‌های انجام شده محققان متوجه اهمیت ساختار شبکه در نتایج شبیه‌سازی شدند، انتخاب مدلسازی درست که بازتاب کننده‌ی ویژگی‌ها و رفتار درستی از شبکه‌ی اجتماعی دنیای واقعی باشد، یکی از چالش‌های این حوزه است. روش‌هایی که ویژگی‌های افراد جامعه و ارتباطات آن‌ها را در مدلسازی خود دخالت داده‌اند و صرفا با مدلسازی تصادفی شبکه‌ی اپیدمی را تولید نکرده‌اند نتایج واقعی‌تری به دست می‌آورند.از اصلی‌ترین محدودیت‌هاو چالش‌هایی که مقالات اپیدمی با آن روبرو بودند، محدودیت در داده‌های موجود بود. به دلایلی مانند این‌که ۱)  برخی از کشور‌ها در اعلام آمار مرتبط با کرونا ممکن است صادق عمل نکنند ۲) اشتباه بودن نتایج تست‌های منفی ۳) عدم توانایی دولت‌ها در تشخیص تمامی موارد ابتلا در کشور‌هاعلاوه بر این مقالاتی که مربوط به تاثیر شیوع کرونا بر شبکه‌های دیگر مانند شبکه‌ی حمل و نقل، مالی و ... بودند، نقش کم‌رنگ‌تری خواهند داشت؛ چرا که تقریبا می‌توان گفت روند زندگی در سراسر جهان به حالت عادی برگشته است و خبری از قرنطینه‌های شدید دیگر نخواهد بود. البته ذکر این نکته ضروری است که برای شبکه‌های حمل و نقل همچنان می‌توان تاثیر موج‌ها را در اعمال محدودیت‌های مسافرتی در نظر گرفت.می‌توان گفت بخشی که در این حوزه احتمالا فعالانه به کار خود ادامه خواهد، مقالات دسته‌ی دارویی و پزشکی هستند که در تعداد محدودی تلاش کردند از شبکه‌های پیچیده در ترکیب با روش‌های یادگیری ماشین استفاده کنند.«این مطلب، پروژه ی درس شبکه های پیچیده ی پویا در دانشگاه شهیدبهشتی است»تهیه و تدوین این مطلب با همکاری دوست عزیز خانم هانیه محمدی انجام شده است.مراجع[1] Zhu, S., Kou, M., Lai, F., Feng, Q., &amp; Du, G. (2021). The Connectedness of the Coronavirus Disease Pandemic in the World: A Study Based on Complex Network Analysis. Frontiers In Physics, 8. doi: 10.3389/fphy.2020.602075[2] Maheshwari, P., &amp; Albert, R. (2020). Network model and analysis of the spread of Covid-19 with social distancing. Applied Network Science, 5(1). doi: 10.1007/s41109-020-00344-5[3] Silva, C., Cantin, G., Cruz, C., Fonseca-Pinto, R., Passadouro, R., Soares dos Santos, E., &amp; Torres, D. (2021). Complex network model for COVID-19: Human behavior, pseudo-periodic solutions and multiple epidemic waves. Journal Of Mathematical Analysis And Applications, 125171. doi: 10.1016/j.jmaa.2021.125171[4] So, M., Tiwari, A., Chu, A., Tsang, J., &amp; Chan, J. (2020). Visualizing COVID-19 pandemic risk through network connectedness. International Journal Of Infectious Diseases, 96, 558-561. doi: 10.1016/j.ijid.2020.05.011[5] Bell, J., Bianconi, G., Butler, D., Crowcroft, J., Davies, P., &amp; Hicks, C. et al. (2021). Beyond COVID-19: network science and sustainable exit strategies. Journal Of Physics: Complexity, 2(2), 021001. doi: 10.1088/2632-072x/abcbea[6] Goel, R., Bonnetain, L., Sharma, R., &amp; Furno, A. (2021). Mobility-based SIR model for complex networks: with case study Of COVID-19. Social Network Analysis And Mining, 11(1). doi: 10.1007/s13278-021-00814-3[7] Scabini, L., Ribas, L., Neiva, M., Junior, A., Farfán, A., &amp; Bruno, O. (2021). Social interaction layers in complex networks for the dynamical epidemic modeling of COVID-19 in Brazil. Physica A: Statistical Mechanics And Its Applications, 564, 125498. doi: 10.1016/j.physa.2020.125498[8] Firth, J., Hellewell, J., Klepac, P., Kissler, S., Jit, M., &amp; Atkins, K. et al. (2020). Using a real-world network to model localized COVID-19 control strategies. Nature Medicine, 26(10), 1616-1622. doi: 10.1038/s41591-020-1036-8[9]Demertzis, K., Tsiotas, D., &amp; Magafas, L. (2020). Modeling and Forecasting the COVID-19 Temporal Spread in Greece: An Exploratory Approach Based on Complex Network Defined Splines. International Journal Of Environmental Research And Public Health, 17(13), 4693. doi: 10.3390/ijerph17134693[10] Chu, A., Tiwari, A., &amp; So, M. (2020). Detecting early signals of COVID-19 global pandemic from network density. Journal Of Travel Medicine, 27(5). doi: 10.1093/jtm/taaa084[11] Alrasheed, H., Althnian, A., Kurdi, H., Al-Mgren, H., &amp; Alharbi, S. (2020). COVID-19 Spread in Saudi Arabia: Modeling, Simulation and Analysis. International Journal Of Environmental Research And Public Health, 17(21), 7744. doi: 10.3390/ijerph17217744[12] Cui, Y., Ni, S., &amp; Shen, S. (2021). A network-based model to explore the role of testing in the epidemiological control of the COVID-19 pandemic. BMC Infectious Diseases, 21(1). doi: 10.1186/s12879-020-05750-9[13]Topîrceanu, A., Udrescu, M., &amp; M˘arculescu, R. (2020). CENTRALIZED AND DECENTRALIZED ISOLATION STRATEGIES AND THEIR IMPACT ON THE COVID-19 PANDEMIC DYNAMICS. Arxiv. doi: 10.48550/arXiv.2004.04222[14] Hu, F., Huang, M., Sun, J., Zhang, X. and Liu, J., 2021. An analysis model of diagnosis and treatment for COVID-19 pandemic based on medical information fusion. Information Fusion, 73, pp.11-21.[15] Lai, Y. and Hu, Y., 2021. A study of systemic risk of global stock markets under COVID-19 based on complex financial networks. Physica A: Statistical Mechanics and its Applications, 566, p.125613.[16] Stella, L., Martínez, A., Bauso, D. and Colaneri, P., 2022. The Role of Asymptomatic Infections in the COVID-19 Epidemic via Complex Networks and Stability Analysis. SIAM Journal on Control and Optimization, 60(2), pp.S119-S144.[17] Tetteh, J., Nguyen, V. and Hernandez-Vargas, E., 2021. Network models to evaluate vaccine strategies towards herd immunity in COVID-19. Journal of Theoretical Biology, 531, p.110894.[18] Shirai Reyna, O., Flores de la Mota, I. and Rodríguez Vázquez, K., 2021. Complex networks analysis: Mexico’s city metro system during the pandemic of COVID-19. Case Studies on Transport Policy, 9(4), pp.1459-1466.[19] Sun, X., Wandelt, S. and Zhang, A., 2020. How did COVID-19 impact air transportation? A first peek through the lens of complex networks. Journal of Air Transport Management, 89, p.101928.[20] Bao, X., Ji, P., Lin, W., Perc, M. and Kurths, J., 2021. The impact of COVID-19 on the worldwide air transportation network. Royal Society Open Science, 8(11).[21] M. E. J. Newman. Networks:an introduction. Oxford University Press, 2017.[22] Proceedings of the Royal Society of London. Series A, Containing Papers of a Mathematical and Physical Character, 1927. A contribution to the mathematical theory of epidemics. 115(772), pp.700-721.</description>
                <category>زیبا امیدوار</category>
                <author>زیبا امیدوار</author>
                <pubDate>Mon, 11 Jul 2022 02:04:03 +0430</pubDate>
            </item>
                    <item>
                <title>احراز هویت یکپارچه (Single Sign on) چیست؟</title>
                <link>https://virgool.io/@m_99666406/%D8%A7%D8%AD%D8%B1%D8%A7%D8%B2-%D9%87%D9%88%DB%8C%D8%AA-%DB%8C%DA%A9%D9%BE%D8%A7%D8%B1%DA%86%D9%87-single-sign-on-%DA%86%DB%8C%D8%B3%D8%AA-rudkqplh4y9i</link>
                <description>مقدمهمعمولا برای کاربران به خاطر سپردن چندین نام کاربری و رمز عبور برای دسترسی به وب‌سایت‌ها و برنامه‌های مختلفی که از آن ها استفاده می کنند دشوار است. Single Sign On که به اختصار  SSO نامیده می شود یک روش احراز هویت است که به کاربران امکان می دهد تا با استفاده از یک مجموعه از اعتبار (credential) به طور ایمن به چندین منبع دسترسی داشته باشند.در ادامه به توضیح بیشتر در مورد احراز هویت یکپارچه و ابزارهای مربوط به آن می پردازیم.شکل ۱- شمای کلی ssoتوضیح احراز هویت یکپارچه و کاربرد آناحراز هویت یکپارچه یا SSO یک فرآیند احراز هویت و دسترسی است که به کاربر این امکان را می‌دهد تا از یک مجموعه از اعتبارنامه‌های ورود (نام کاربری و رمز عبور) برای دسترسی به چندین برنامه استفاده کند. با SSO تلاش کاربران نهایی به حداقل می رسد زیرا آنها نیازی به وارد کردن تکراری اطلاعات هویتی به صورت جداگانه برای ورود به چندین برنامه ی کاربردی ندارند. Single Sign On به کاربران و سازمان‌ها کمک می‌کند تا با چالش حفظ credentialهای  مختلف برای برنامه‌های مختلف به طور جداگانه، روند ثبت نام را بدون نیاز به وارد کردن مجدد رمز عبور ساده‌تر کنند. پیاده سازی SSO اغلب توسط شرکت ها در دنیای سازمانی به عنوان بخشی از استراتژی آنها برای دسترسی ایمن به منابع مهم پذیرفته می شود.با ظهور محاسبات ابری و رونق نرم افزار به عنوان سرویس (SaaS)، شرکت ها در سراسر جهان تمرکز خود را بر استراتژی های مدیریت دسترسی افزایش می دهند که می تواند امنیت کاربر را افزایش دهد. اجرای SSO می تواند در هر دو جنبه ارائه شود.از منظر امنیتی، یکی از مزایای Single Sign On این است که به دلیل اینکه تعداد اعتبارنامه های (credentials) مورد نیاز برای ورود به چندین سرویس را به یک اعتبار کاهش می دهد، اعتبار کمتری برای گم شدن یا سرقت وجود دارد. علاوه بر این، احراز هویت چند عاملی multi-factor authentication یا به اختصار MFA و احراز هویت دو عاملی two-factor athentication یا به اختصار 2fA به احتمال زیاد برای محافظت از آن اعتبار (credential) واحد و قدرتمند اعمال می شود.از دیدگاه کاربر نهایی، استفاده از سیستم Identity Provider که قادر به پشتیبانی از SSO است، user experience را افزایش می‌دهد. علاوه بر این، استفاده از SSO به این معنی است که نیازی نیست اطلاعات هویتی برای ده ها حساب کاربری به خاطر سپرده شود.نحوه ی کار SSO چگونه است؟پیاده سازی Single Sign On معمولاً شامل تعریف یک سرویس مرکزی است که برنامه ها هنگام ورود کاربر به آن متکی هستند. در این رویکرد، اگر یک کاربر که هویت او احراز نشده است،درخواست دسترسی به برنامه ای را بدهد که به اطلاعات هویتی نیاز دارد، برنامه مورد نظر کاربر را به سرویس مرکزی هدایت می کند. در این سرور، کاربر  احراز هویت می شود و با اطلاعات هویتی به برنامه اصلی که در ابتدا درخواست داده بود، هدایت می شود.پس از مدتی، اگر همان کاربر به برنامه دیگری منتقل شود که به اطلاعات هویتی نیز نیاز دارد و برای انجام احراز هویت کاربر به همان سرویس مرکزی متکی است، برنامه دوم می‌تواند از session ای که کاربر هنگام ورود به برنامه اول شروع کرده است، استفاده کند.یک مثال خوب که می تواند به توضیح نحوه عملکرد SSO کمک کند، گوگل و سرویس های مختلف آن است. به عنوان مثال، وقتی می‌خواهید بدون احراز هویت به Gmail دسترسی پیدا کنید، Google شما را به یک سرویس مرکزی (accounts.google.com) هدایت می‌کند. در آنجا، یک فرم ورود خواهید دید که در آن باید اطلاعات حساب کاربری خود را وارد کنید. اگر فرآیند احراز هویت موفقیت آمیز باشد، گوگل شما را به Gmailهدایت می کند. سپس، پس از احراز هویت از طریق این سرویس مرکزی، اگر به سرویس دیگری (مثلاً یوتیوب) مراجعه کنید، خواهید دید که به طور خودکار و بدون نیاز به احراز هویت مجدد وارد سیستم می شوید.مزایای SSO چیست؟استفاده از رمزهای عبور قوی تر: از آنجایی که کاربران فقط باید از یک رمز عبور استفاده کنند، SSO ایجاد، به خاطر سپردن و استفاده از رمزهای عبور قوی تر را برای آنها آسان تر می کند. رمز عبوری قوی است که به راحتی قابل حدس زدن نباشد و به اندازه ی کافی تصادفی باشد که احتمال موفقیت آمیز بودن یک حمله ی brute force را کاهش دهد.عدم تکرار گذرواژه ها: زمانی که کاربران مجبورند گذرواژه های چندین برنامه و سرویس مختلف را به خاطر بسپارند، ترجیح می دهند از رمز عبور یکسان در همه ی سرویس ها استفاده کنند.استفاده از رمز عبور یکسان در چندین سرویس یک خطر امنیتی بزرگ است، زیرا به این معنی است که همه سرویس‌ها فقط به اندازه سرویسی با ضعیف‌ترین محافظت از رمز عبور امن هستند و اگر پایگاه داده رمز عبور آن سرویس به خطر بیفتد، مهاجمان می‌توانند از رمز عبور برای هک کردن تمام اطلاعات کاربر استفاده کنند. SSO این خطر را با کاهش تعداد دفعات ورود از چند بار به یک بار کم می کند.اجرای بهتر خط مشی رمز عبور: SSO راهی را برای تیم های فناوری اطلاعات فراهم می کند تا به راحتی قوانین امنیتی رمز عبور را اعمال کنند. برای مثال، برخی از شرکت‌ها از کاربران می‌خواهند که رمز عبور خود را به صورت دوره‌ای بازنشانی کنند. با SSO، بازنشانی رمز عبور آسان‌تر است زیرا به جای بازنشانی مداوم رمز عبور در تعدادی از برنامه‌ها و سرویس‌های مختلف، کاربران فقط یک رمز عبور برای بازنشانی دارند. (در حالی که ارزش بازنشانی منظم رمز عبور زیر سوال رفته است، برخی از تیم های فناوری اطلاعات هنوز آنها را بخش مهمی از استراتژی امنیتی خود می دانند.)احراز هویت چند عاملی: احراز هویت چند عاملی یا MFA به استفاده از بیش از یک عامل هویت برای احراز هویت یک کاربر اشاره دارد. به عنوان مثال، کاربر علاوه بر وارد کردن نام کاربری و رمز عبور، ممکن است مجبور باشد یک دستگاه USB وصل کند یا کدی را وارد کند که روی گوشی هوشمندش ظاهر می‌شود. داشتن این شیء فیزیکی دومین &quot;عامل&quot; است که کاربر را مشخص می کند که او چه کسی است. MFA بسیار امن تر از تکیه بر رمز عبور است. SSO امکان فعال کردن MFA را در یک نقطه به جای نیاز به فعال کردن آن برای سه، چهار یا چند ده برنامه، که ممکن است امکان پذیر نباشد، ممکن می سازد.مدیریت اعتبار داخلی به جای حافظه خارجی: معمولاً گذرواژه‌های کاربر از راه دور به‌صورت مدیریت‌ نشده توسط برنامه‌ها و سرویس‌هایی که سطح امنیت در آن ها مشخص نیست، ذخیره می‌شوند. با این حال، با SSO، آنها به صورت داخلی در محیطی ذخیره می شوند که یک تیم IT کنترل بیشتری روی آن دارد.اتلاف زمان کمتر برای بازیابی رمز عبور: علاوه بر مزایای امنیتی فوق، SSO مانع اتلاف زمان تیم های فناوری اطلاعات می شود و باعث می شود آن ها زمان کمتری را صرف کمک به کاربران برای بازیابی یا بازنشانی رمز عبور ده‌ها برنامه کند و کاربران نیز زمان کمتری را صرف ورود به برنامه‌های مختلف برای انجام کارهای خود می‌کنند. این مساله ممکن است باعث افزایش بهره وری کسب و کار گردد.یک نقطه برای اعمال ورود مجدد رمز عبور: مدیران سامانه می توانند پس از مدت زمان معینی credential ها  را مجدداً وارد کنند تا مطمئن شوند که همان کاربر وارد شده همچنان در  سیستم فعال است. با SSO، آنها یک مکان مرکزی برای انجام این کار برای همه برنامه های داخلی دارند و مجبور نیستند این کار را در چندین برنامه ی مختلف انجام دهند.ابزارها و فناوری های متن باز در حوزه ی احراز هویت یکپارچه (SSO)در این بخش به بررسی ابزارهای مطرح متن باز در حوزه ی احراز هویت یکپارچه می پردازیم.ابزار IdentityServerاین ابزار یک نرم افزار متن باز و رایگان برای ورود به سیستم است. در واقع یک چارچوب بین پلتفرمی مبتنی بر OpenID Connect و OAuth 2 است. علاوه بر این، این نرم‌افزار متن باز قابلیت‌های احراز هویت مرکزی و مجوز را برای چندین برنامه کاربردی فراهم می‌کند. علاوه بر این، این نرم افزار کاربران را قادر می سازد تا با یک مجموعه از نام های کاربری/گذرواژه در بسیاری از برنامه ها وارد سیستم شوند.IdentityServer به زبان #c نوشته شده است و تمام کد منبع آن به همراه اسناد مربوط به استقرار و توسعه در Github موجود است.اطلاعات بیشتر در مورد این ابزار در این لینک قابل مشاهده است.شکل ۲- ابزار identity serverابزار KeyCloakنرم افزار KeyCloak نیز ابزار رایگان دیگری است که بر پایه OpenID Connect، OAuth2.0 و SAML2.0 است.  این نرم افزار متن باز امکان ادغام با LDAP و Active Directory را فراهم می کند. یک رابط کاربری مناسب دارد که در آن کاربران می توانند نقش ها، مجوزها و session ها را مدیریت کنند. بخش عمده ی نرم افزار KeyCloak به زبان جاوا  نوشته شده است و کد آن در Github موجود است.اطلاعات مربوط به این نرم افزار را می توانید در این لینک ببینید.شکل ۳- ابزار KeyCloak ابزار Autheliaاین نرم افزار امکانات بسیار زیادی دارد و مقیاس پذیر است و امنیت فوق العاده ای را ارائه می دهد. این نرم افزار متن باز از LDAP و Active Directory نیز پشتیبانی می کند. علاوه بر این، یک رابط کاربری بصری دارد که به کاربران امکان استفاده ی آسان را می دهد. علاوه بر این، احراز هویت دو مرحله‌ای را بر اساس Google Authenticator OTP ارائه می‌کند.Authelia به زبان Go نوشته شده است و source code آن در Github موجود است.اطلاعات بیشتر در مورد این ابزار از اینجا قابل دسترسی است.شکل ۴- ابزار Autheliaشرکت های ایرانی ارائه دهنده خدمات در حوزه ی احراز هویت یکپارچهاز جمله شرکت های ایرانی فعال در این زمینه می توان به شرکت دانش بنیان هویتا (فناوران هویت الکترونیکی امن) اشاره کرد. این شرکت با هدف توسعه محصولات و خدمات حوزه زیرساخت کلید عمومی (PKI)، احراز هویت و هویت سنجی دیجیتال و ارائه راهکارهای مطمئن به جهت تأمین امنیت اطلاعات، ارتباطات و تبادلات الکترونیکی، تشکیل شده است.در سایت این شرکت در مورد احراز هویت یکپارچه (sso) متن زیر آورده شده است:سامانه احراز هویت ParsSSO، سرویس ‌های احراز هویت و امضای دیجیتال مبتنی بر PKI را ارائه می ‌دهد. احراز هویت در این سامانه به صورت Single Sign-On است یعنی تنها با یکبار احراز هویت، کاربر می‌ تواند از تمامی سامانه ‌های سازمان بدون نیاز به احراز هویت مجدد استفاده نماید. همچنین مدیریت یکپارچه کاربران، مشکلات مربوط به سرپرستی سامانه ‌ها را به صورت چشمگیری کاهش می ‌دهد. با تعریف یک کاربر، دسترسی کاربر در تمامی سامانه ‌ها به صورت خودکار ایجاد می ‌گردد و با حذف دسترسی، در تمامی سامانه ‌ها از ورود کاربر جلوگیری خواهد شد. علاوه بر این، محصول ParsSSO با ارائه درگاه امضای دیجیتال، باعث حذف فرآیند PK-Enabling در سامانه‌ های نرم ‌افزاری می ‌گردد که منجر به کاهش چشمگیر زمان و هزینه‌ های سازمان در تجهیز سامانه ‌ها به زیرساخت کلید عمومی می‌ شود.از جمله دیگر شرکت های فعال در این زمینه متن باز سامان است.شرکت متن‌باز سامان (مرکز توسعه‌ی نرم‌افزارهای باز سامان) در سال ۱۳۸۸ با هدف تولید و توسعه‌ی نرم‌افزارهای متن‌باز (open source) و سفارشی‌سازی این محصولات با توجه به نیاز سازمان‌ها، دانشگاه ها و شرکت‌های مختلف تأسیس شد. این شرکت سامانه ی احراز هویت یکپارچه خود را تحت عنوان سامانه ی متین ارائه کرده است.شکل ۵- قابلیت های سامانه احراز هویت یکپارچه شرکت متن باز سامانهمچنین شرکت آتین نیز در زمینه ی sso خدمات ارائه می کند. شرکت دانش بنیان آتین آتیه اندیش، مستقر در پارک علم و فناوری دانشگاه تهران، در سال 1396 فعالیت خود را به طور تخصصی درحوزه ارائه خدمات احراز هویت آغاز کرد. این شرکت با بررسی نمونه های مشابه خارجی و بر اساس نیازهای داخلی کشور درحوزه احراز هویت، اقدام به توسعه سامانه مدیریت هویت و دسترسی نموده است.این شرکت سامانه احراز هویت یکپارچه خود را اینگونه توصیف کرده است:سامانه احراز هویت یکپارچه (Single Sign On) آتین ضمن حفظ امنیت داده ها، تا حد قابل توجهی بهره وری را افزایش می دهد. با استفاده از احراز هویت یکپارچه (SSO)،کاربران تنها با داشتن یک نام کاربری و رمز عبور می توانند به تمام برنامه های تحت وب ، دسکتاپ و موبایل سازمان یا کسب و کار خود از طریق کامپیوتر شخصی، گوشی موبایل و تبلت دسترسی داشته باشند. این شکل از احراز هویت و مدیریت دسترسی اولین قدم در ایجاد اعتماد برای مشتریان، کارمندان و شرکای شما است.در شکل زیر قابلیت های احراز هویت یکپارچه آتین مشخص شده است.شکل ۶- قابلیت های احراز هویت یکپارچه (sso) آتینمنابع1- https://authin.ir/single-sign-on/2- https://mbs.co.ir/fa/content/Single-Sign-On3- https://www.cloudflare.com/learning/access-management/what-is-sso/4- https://auth0.com/intro-to-iam/what-is-single-sign-on-sso/5- https://www.miniorange.com/single-sign-on-sso6- https://blog.containerize.com/2021/01/29/top-5-open-source-single-sign-on-software-in-the-year-2021/7- https://www.onelogin.com/learn/how-single-sign-on-works</description>
                <category>زیبا امیدوار</category>
                <author>زیبا امیدوار</author>
                <pubDate>Fri, 24 Dec 2021 21:24:07 +0330</pubDate>
            </item>
                    <item>
                <title>آشنایی با Continuous Delivery</title>
                <link>https://virgool.io/@m_99666406/%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C-%D8%A8%D8%A7-continuous-delivery-f9e78qxxv5do</link>
                <description>مقدمهتحویل مستمر یا Continuous Delivery که به اختصار CD نیز نامیده می شود، رویکردی در مهندسی نرم افزار است که تیم ها را قادر می سازد نرم افزار تولید شده را به روشی سریع و مطمئن برای تحویل آماده کنند.  Continuous Delivery توانایی اعمال تغییرات در محیط عملیات در هر لحظه با روشی سریع و مطمئن و به طور کاملا پایدار می باشد. این تغییرات می تواند از هر نوعی باشد و شامل تغییرات پیکربندی در نرم افزار، زیر ساخت و پلتفرم، افزودن ویژگی های جدید و رفع باگ ها و خطاها می شود.در ادامه به توضیحات بیشتر در مورد Continuous Delivery می پردازیم.توضیح Continuous Delivery و کاربرد آنتحویل مستمر بخشی از CI/CD را تشکیل می دهد. CI/CD در واقع روشی برای ارائه ی مکرر نرم افزار با خودکار سازی برخی از مراحل توسعه برنامه به حساب می آید.&quot;CI&quot; در CI/CD به ادغام پیوسته(Continuous Integration) اشاره دارد. با یکپارچه سازی مداوم، تغییرات کد جدید در یک برنامه به طور منظم ساخته، آزمایش و در یک مخزن مشترک ادغام می شوند. این موضوع یک راه حل برای مشکل داشتن branch های بیش از حد یک برنامه در حال توسعه به طور همزمان است که ممکن است با یکدیگر تضاد داشته باشند.&quot;CD&quot; در CI/CD به تحویل مستمر اشاره دارد که روش هایی را برای خودکارسازی مراحل بعدی pipeline مربوط به CI/CD توصیف می کند.در واقع Continuous Delivery توانایی پذیرش انواع تغییرات از جمله اضافه شدن امکانات جدید به برنامه، تغییرات پیکربندی و رفع خطاها به روشی سریع و پایدار است. در این رویکرد هدف این است که تیم توسعه ی نرم افزار همیشه آماده باشد تا جدیدترین نسخه ی نرم افزار تولیدی خود را در هر زمانی منتشر کند. همچنین حتی اگر تیم های توسعه متشکل از افراد زیادی باشند یا نرم افزار ما توزیع شده باشد، با استفاده از CD فرایند ارائه ی نرم افزار بصورت ساده و قابل پیش بینی و روتین تبدیل می شوند.شکل ۱- pipeline مربوط به CI/CDفرایند CD که معادل فارسی &quot; تحویل مداوم یا مستمر&quot; را می توان برای آن در نظر گرفت، یک رویکرد در توسعه و تولید نرم افزار می باشد که بر اساس آن تیم توسعه نرم افزار بصورت سریع و مطمئن، همواره آماده است تا جدیدترین نسخه از نرم افزار تولیدی را در هر زمانی منتشر کند. این فرایند از زمان اضافه شدن یا تغییر کد در سرور سورس کنترل شروع می شود و شامل بیلد، تست، پیکربندی و انتشار در محیط های گوناگون تستی یا عملیاتی می باشد. اهمیتی ندارند که تیم های توسعه چه تعداد بزرگ باشند و یا نرم افزاری که مد نظر است توزیع شده باشد یا خیر، با استفاده از CD فرایندهای شرح داده شده بصورت ساده و قابل پیش بینی و روتین تبدیل می شوند.تفاوت Continuous Delivery و Continuous Deploymentتحویل مستمر (Continuous Delivery) و استقرار مستمر (Continuous Deployment)، در حالی که مفاهیم نزدیک به هم مرتبط هستند، گاهی اوقات به طور جداگانه برای تعیین میزان اتوماسیون در حال وقوع استفاده می شوند.تحویل مستمر معمولاً به این معنی است که تغییرات انجام شده توسط تیم توسعه به شکل خودکار از نظر داشتن باگ بررسی شده و سپس در یک مخزن (مانند GitHub) آپلود می‌شوند و سپس می توانند توسط تیم عملیات در یک محیط عملیاتی مستقر شوند. این مفهوم در واقع پاسخی برای رفع  مشکل ارتباط ضعیف بین تیم توسعه‌دهنده و کسب‌وکار است و باعث می‌شود زحمت پیاده‌سازی تغییرات جدید به حداقل برسد.استقرار پیوسته مربوط به انتشار خودکار تغییرات از مخزن تا مشاهده ی آن توسط کاربر است.این مفهوم راهی برای حل مشکل ایجاد سربار زیاد برای تیم عملیات، به‌دلیل تنظیمات دستی مربوط به انتشار است که سرعت تحویل نرم‌افزار را کاهش می‌دهد.شکل ۲-    Continuous Integration , Continuous Delivery, Continuous Deploymentچرا از Continuous Delivery استفاده می کنیم؟اغلب فرض بر این است که اگر می‌خواهیم نرم‌افزار را به دفعات بیشتری مستقر کنیم، باید سطوح پایین‌تری از ثبات و قابلیت اطمینان را در سیستم‌های خود بپذیریم. اما در واقع این طرز فکر صحیح نیست.تحقیقات انجام‌شده نشان می دهد تیم‌های با عملکرد بالا به طور مداوم خدمات را سریع‌تر و قابل اطمینان‌تر از سایر تیم های با عملکرد پایین تر ارائه می کنند. از مزایای تحویل مستمر می توان به موارد زیر اشاره کرد:انتشار نرم افزار با ریسک پایین تر: هدف اولیه از تحویل مستمر این است که پیاده‌سازی نرم‌افزار را بدون دردسر و با ریسک کمتر انجام داد. در نتیجه انتشار نرم افزار قابل اعتمادتر خواهد بود.زمان سریعتر برای بازاریابی:  در فرایند تحویل سنتی نرم افزار ممکن است مرحله ی ادغام و تست محصول هفته ها یا ماه ها طول بکشد. با استفاده از رویکرد CD تیم ها فرایند های یکپارچه سازی و تست رگرسیون را در برنامه ی روزانه ی خود می گنجانند و حجم زیاد دوباره کاری اجتناب می شود. کیفیت بالاتر: با استفاده از ابزارهای خودکار و سریع  برای کشف رگرسیون ها توسط توسعه دهندگان وقتی توسعه‌دهندگان، تیم های توسعه وقت بیشتری خواهند داشت تا بر سطوح تست بالاتر مانند تست اکتشافی (exploratory testing)، تست قابلیت استفاده (usability testing)، و تست عملکرد (performance testing) و امنیت (security testing) تمرکز کنند. با ساخت یک خط لوله استقرار (deployment pipeline)، این فعالیت ها می توانند به طور مداوم در طول فرآیند تحویل انجام شوند و اطمینان حاصل شود که محصول با کیفیتی ارائه می شود.هزینه های پایین تر:  هر محصول یا خدمات نرم افزاری موفقی در طول عمر خود به طور قابل توجهی تکامل می یابد. با سرمایه‌گذاری در ساخت، تست، استقرار و اتوماسیون محیطی، ما با حذف بسیاری از هزینه‌های ثابت مرتبط با فرآیند انتشار، هزینه ایجاد و ارائه تغییرات تدریجی در نرم‌افزار را به‌طور قابل ملاحظه‌ای کاهش می‌دهیم.محصولات بهتر: تحویل مستمر باعث تحویل محصول به صورت خرد خرد می شود. این بدان معنی است که ما می توانیم در طول چرخه ی عمر تحویل نرم افزار بر اساس نرم افزار کار از کاربران بازخورد دریافت کنیم. تکنیک‌هایی مانند تست A/B ما را قادر می‌سازد تا رویکردی مبتنی بر فرضیه را برای توسعه محصول در پیش بگیریم که به موجب آن می‌توانیم ایده‌ها را با کاربران قبل از ایجاد ویژگی‌های کامل آزمایش کنیم. این بدان معناست که می‌توانیم متوجه شویم کدام امکانات ارزش صفر یا منفی به کسبب و کارمان می دهد و از ارائه ی آن ها اجتناب کنیم. تیم های شادتر: بررسی ها نشان داده است که تحویل مستمر باعث کاهش فرسودگی تیم می شود. علاوه بر این، تعدد دفعات انتشار نرم افزار باعث می شود که تیم های تحویل نرم افزار به طور پویا و موثر با کاربران در تعامل باشند و متوجه شوند استفاده از کدام ایده ها مناسب بوده است و کدام نه و خروجی کار خود را ببیند. با حذف فعالیت‌های فرسایشی کم‌ارزش مرتبط با تحویل نرم‌افزار، می‌توانیم روی چیزی که بیش از همه به آن اهمیت می‌دهیم تمرکز کنیم و کاربران را نیز خوشحال کنیم.تحویل مستمر چگونه با DevOps مرتبط است؟این دو مفهوم از جهاتی به هم نزدیک هستند اما تفاوت هایی نیز با هم دارند. DevOps مفهومی است که شیوه های توسعه و عملیات را با هم ترکیب می کند و علاوه بر خودکارسازی فرایند تحویل نرم افزار، تغییرات فرهنگی به خصوص ارتباط بین تیم های مختلف که در جریان آماده سازی و تحویل محصول نرم افزاری هستند را نیز در برمی گیرد و هدف آن افزایش ارزش کسب‌وکار و پاسخگویی از طریق ارائه خدمات سریع و با کیفیت بالا است.اما Continuous Delivery روشی برای خودکار سازی فرایند تحویل محصول است و بر این موضوع تمرکز دارد که فرایند های مرتبط در کنار هم طوری اجرا شود که منجر شود محصول نرم افزاری به دفعات متعدد و با سرعت بیشتر، امنیت بیشتر و ریسک کمتر به دست مشتری برسد. نتیجه اصلی اجرای DevOps یک خط لوله CI/CD است که توسط تیم های توسعه و عملیاتی که با یکدیگر با استفاده از یک روش چابک (agile) کار می کنند پشتیبانی می شود.شکل ۳- ارتباط تحویل مستمر با DevOpsابزارها و فناوری های متن باز حوزه ی  Continuous Delivery از جمله ابزار های مطرح Continuous Delivery می توان به CircleCI، Jenkis و GoCD اشاره کرد. در ادامه به بررسی این ابزارها می پردازیم.ابزار Jenkisیک ابزار خودکار سازی منبع باز است که ساخت مرکزی و فرآیند یکپارچه سازی مستمر در آن انجام می شود. این ابزار یک برنامه مستقل مبتنی بر جاوا است که قابل استفاده روی سیستم عامل های مختلف است. Jenkis به کاربران امکان می دهد pipeline مربوط به CI/CD را با پلاگین ها و رابط کاربری گرافیکی و همچنین  کد ایجاد کنند. این ابزار از ساخت، استقرار و خودکارسازی پروژه های توسعه نرم افزار پشتیبانی می کند. ویژگی های کلیدی این ابزار عبارت است از:رابط کاربری آسان و ساده پسندنصب و ارتقاء آسان در سیستم عامل های مختلفپشتیبانی از ساخت های توزیع شده با معماری master-slaveاطلاع رسانی از وضعیت ساخت (build)از اجرای دستورات شل و ویندوز در مراحل پیش ساخت پشتیبانی می کند.اطلاعات بیشتر در مورد این ابزار از این لینک قابل مشاهده است.شکل ۴- ابزار Jenkisابزار CircleCIاین ابزار یک ابزار CI/CD است که از توسعه و انتشار سریع نرم افزار پشتیبانی می کند. CircleCI امکان اتوماتیک سازی در سراسر خط لوله (pipeline)، از ساخت کد، تست تا استقرار را فراهم می کند.می‌توانید CircleCI را با GitHub ادغام کرد. از ویژگی های این ابزار می توان به موارد زیر اشاره کرد:بیلدها را با استفاده از کانتینر یا ماشین مجازی اجرا می کنداشکال زدایی آسانموازی سازی خودکارراه اندازی و تست های سریع قابلیت بالای شخصی سازیاستقرار مستمر و خاص برای هر branchاطلاعات بیشتر در مورد این ابزار در این لینک قابل دسترسی است.شکل ۵- ابزار circleciابزار GoCDاین ابزار نیز یک ابزار متن  باز برای ساخت و انتشار نرم افزار است که از زیرساخت های مدرن در CI/CD پشتیبانی می کند. از ویژگی های این نرم افزار می توان به موارد زیر اشاره کرد:پیکربندی راحت به منظور دریافت سریع بازخوردها و انجام استقرارهای درخواستی انتشار محصول قابل اعتماداستقرار هر نسخه در هر زمانکنترل گردش کار و ردیابی تغییرات از commit کردن تا استقراراطلاعات بیشتر درباره ی GoCD را در این لینک ببینید.شکل ۶- ابزار GOCDشرکت های ایرانی ارائه دهنده خدمات در حوزه ی Continuous Deliveryاز جمله شرکت های ایرانی فعال در این زمینه می توان به شرکت  لاراهاست اشاره کرد.لاراهاست  در زمینه ی ارائه ی تکنولوژی های روز دنیا در حوزه میزبانی وبسایت فعالیت می کند. در سایت این شرکت در مورد تحویل مستمر متن زیر آورده شده است:برای بسیاری از برنامه نویسان و متخصصین Devops، ارائه محصول به صورت دوره ای از اهمیت ویژه ای برخوردار است.ما در لاراهاست برآن شدیم که با ارائه سرویس Continuous Delivery، به این نیاز کاربران ارج نهیم که بتوانند محصول خود را در سریع ترین زمان ممکن به محیط های Staging, Production برسانند.از جمله دیگر شرکت های فعال در این زمینه کوالاتک است.مجموعه کوالاتک، ارائه دهنده خدمات تخصصی تست نرم افزار و تضمین کیفیت می باشد. این شرکت خدمات CI/CD خود را اینگونه توصیف کرده است:ما در شرکت کوالاتک با بهره‌گیری از متخصصان ارشد حوزه QA و انجام ده‌ها پروژه مختلف آماده کمک به سازمان‌های مختلف برای راه اندازی فرایند CI/CD می‌باشیم.شکل ۷- ویژگی های CI/CD ارائه شده شرکت کوالاتکهمچنین شرکت ابرآروان نیز از دیگر شرکت های ارائه کننده خدمات در این زمینه است.«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»منابع1- https://continuousdelivery.com2- https://www.redhat.com/en/topics/devops/what-is-continuous-delivery3- https://www.katalon.com/resources-center/blog/ci-cd-tools/4- https://searchitoperations.techtarget.com/tip/5-open-source-continuous-delivery-tools-to-trial5- https://aws.amazon.com/devops/continuous-delivery/6- http://lara-host.ir/continuous-delivery/7- https://qualatech.ir/ci-cd/</description>
                <category>زیبا امیدوار</category>
                <author>زیبا امیدوار</author>
                <pubDate>Fri, 24 Dec 2021 16:37:32 +0330</pubDate>
            </item>
                    <item>
                <title>سیستم مدیریت فرآیند کسب و کار (BPMS) چیست؟</title>
                <link>https://virgool.io/@m_99666406/%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA-%D9%81%D8%B1%D8%A2%DB%8C%D9%86%D8%AF-%DA%A9%D8%B3%D8%A8-%D9%88-%DA%A9%D8%A7%D8%B1-bpms-%DA%86%DB%8C%D8%B3%D8%AA-cnl2cjcd0acj</link>
                <description>مقدمهکلمه ی BPMS مخفف Business Process Management System یا Business Process Management Software است.در واقع  BPMS نرم افزاری برای خودکار سازی و اتوماتیک کردن فرایند های سازمان است.  BPMS ابزاری است که می تواند طیف وسیعی از عملکردهای تجاری پیچیده سازمان را مدیریت کند و کارایی را بهبود بخشد. همچنین مدلسازی، طراحی، پیاده سازی و ویرایش فرایند های سازمانی در کسب و کارها توسط آن ها انجام می شود تا جمع آوری داده و تحلیل آن ها با سرعت و دقت بیشتری انجام شود. در ادامه به توضیح بیشتر در مورد BPMS و کاربرد آن می پردازیم.توضیح BPMS و کاربرد آنقبل از شروع بحث بهتر است با یک مثال درک مفهوم BPMS را ساده‌ کنیم. فرایند درخواست وام را در یک سازمان در نظر بگیرید. در حالت عادی برای انجام این فرایند باید فرم های مختلف پر کنیم، از افراد مختلف امضا بگیریم و ... این روند خسته کننده است و زمان زیادی از ما می گیرد. علت این موضوع طراحی نامناسب فرایندها و عدم شناخت لازم و کافی از بهینه سازی فرایندها است. از نرم افزار BPMS برای طراحی و اتوماسیون فرایندها استفاده می شود و ارائه این نرم‌افزار باعث تسریع و ساده‌‌سازی فرایندهای سازمانی و حذف مراحل سخت و پیچیده گذشته می شود. این نرم افزار به سازمان‌ها این امکان را می‌دهد تا مراحل و فرآیندهای کاری را متناسب با اهداف خود طراحی کنند.قبل از توضیحات بیشتر در مورد BPMS، ابتدا عبارت BPM که مخفف عبارت Business Process Management است را توضیح می دهیم. BPM به معنی مدیریت فرایند کسب و کار است که به عنوان یک متد یا تکنیک با چارچوب های مشخص و یک روش ساختار یافته برای ساده کردن عملیات و افزایش بهره روی تعریف می شود. این تکنیک ها و روش ها اغلب برای شناسایی، مدل سازی، تحلیل، اصلاح، بهبود و استاندارد سازی فرایند های کسب و کار با کمک اتوماسیون استفاده می شوند. مفهوم دیگری به نام BPMN وجود دارد که مخفف Business Process Model &amp; Notation است و به مجموعه ای از نمادها و استانداردها برای مدل سازی فرایندهای کسب و کار گفته می شود. در واقع BPMN زبان BPM به حساب می آید و باعث درک واضح تر از BPM یک سازمان می شود. شکل ۱- BPMNابزارهای BPMS بر اساس نماد های BPMN عمل می‌کنند. بدین صورت که مدل‌های ساخته شده با  BPMN را گام به گام تا اجرایی شدن پیاده سازی می‌کنند. پس از طراحی BPMN در گام بعدی مدل داده‌ای و فیلدهای لازم برای کاربرد در فرایند را طراحی می‌کنند. در بخش بعد فرم‌ها و قوانین تجاری موجود در فرایند باید طراحی شوند و در نهایت گام آخر اجرا کنندگان فرایند مشخص می‌شود.مراحل کار BPMS چیست؟۱- تعریف و طراحی فرآیندها:‌ فرآیند به دنباله ای از فعالیت ها گفته می شود که برای دستیابی به یک نتیجه خاص اجرا می شوند. قبل از خودکار سازی فرآیندها باید به مستند سازی آن ها پرداخت.مستندسازی فرآیند نیازمند همکاری و برنامه ریزی بین ذینفعان برای تعیین کارآمدترین و مناسب ترین اقدامات برای انجام یک وظیفه است. همچنین قبل از پیاده سازی هر فرآیند سازمانی، باید آن فرآیند توسط مدیر یا مسئول مربوطه طراحی و سازماندهی شود. سپس جریان های فرآیند کسب و کار را می توان در یک سیستم مدیریت فرآیند کسب و کار پیاده سازی کرد و آن ها را بازبینی کرد تا هرگونه ایراد و مشکل احتمالی در پیاده سازی فرآیند برطرف شود. ۲- خودکار سازی: بعد از طراحی فرآیند مورد نظر و پیاده کردن آن در BPMS، نوبت به خودکار سازی آن می‌رسد.خودکار سازی گردش کار به کسب و کارها کمک می کند تا فرآیندهای خود را بهتر مدیریت و بهینه کنند. کارهایی که باید به صورت خودکار انجام شوند کارهایی هستند که دائما تکرار می شوند. با استفاده از نرم افزار BPMS می‌توان تعریف نمود عملکردهایی مانند دریافت اطلاعات ورودی، تعیین وظایف افراد در سطوح مختلف سازمانی، ارجاع وظایف و… به صورت خودکار و برنامه‌ریزی شده در سیستم انجام شود.۳- تحلیل: نرم افزار BPMS می توانند سطوح مختلفی از گزارش ها را تولید کنند یا با ابزارهای گزارش دهی دیگری ادغام شوند و اطلاعات حاصل از تجزیه و تحلیل در مورد عملکرد فرآیندها را به ما ارائه دهند.چگونگی تحلیل گزارش ها به شاخص های کلیدی عملکرد (KPI) سازمان مرتبط هستند و می توانند اطلاعاتی در مورد اثر بخشی فرآیندها و اعضای تیم به ما بدهند.چرا سازمان ها از BPMS استفاده می کنند؟در دنیای رقابتی امروز، هر کسب  و کاری باید تا حد امکان کارآمد باشد تا بتواند پایدار بماند و پیشرفت کند. همچنین با توجه به تغییرات محیط خارجی نیاز است تا فرآیندهای سازمان به طور مستمر تغییر کنند و بهبود یابند. بنابراین به یک سیستمی نیاز داریم تا بتواند این تغییرات را با سرعت بالا و هزینه ی کم اعمال کند و همچنین مشکل و خطای کمی داشته باشد. مسائل مطرح شده لزوم وجود BPMS در یک سازمان را نشان می دهد. یکی از کاربرد های رایج BPMS بهبود فرآیندهای سفارش و خرید کالا است. در حین انجام این فرآیند گاهی اوقات تعدادی از اطلاعات ضروری ممکن است در مراحل مختلف ثبت و تایید سفارش، پرداخت، بسته بندی و تحویل سفارش از دست برود. بنابراین اهمیت استفاده از BPMS برای یکپارچه سازی فرآیند سفارش و خرید کالا برای شرکت هایی که تعداد زیادی سفارش کالا دریافت می کنند، مشهود است.استفاده از BPMSچه مزایایی دارد؟چابکی بیشتر کسب و کار: سازمان ها باید توانایی نشان دادن واکنش سریع به تغییراتی که ناشی از پیشرفت های تکنولوژی، وضع مقررات جدید که بر جنبه ای از کسب و سازمان تاثیر می گذارد و سایر موارد مشابه را داشته باشند تا بتوانند در گردونه ی رقابت باقی بمانند. استفاده از BPMS به سازمان ها این امکان را می دهد که در صورت لزوم فرآیند را با حداقل زمان و هزینه اصلاح کنند.افزایش کارایی: سازمان ها همواره تلاش می کنند تا فرآیندهای کسب و کار خود را تا حد امکان کارآمد کنند. فرآیندهای ناکارآمد باعث اتلاف زمان و هزینه می شوند. معمولا شناسایی فرآیندهای ناکارآمد و تغییر آن ها سخت است. نرم افزار مدیریت کسب و کار به منظور مشخص کردن دقیق گلوگاه ها و ناکارآمدی ها ایجاد شده اند.استفاده از BPMS به مدیران و مسئولان اجازه می دهد تا درک بیشتری از هر مرحله ی فرآیندهای کسب و کار داشته باشند و فرآیندهای بهینه تری طراحی کنند.دید بهتر و کامل تر: با استفاده از BPMS می توان فرآیندهای کسب و کار را از شروع تا تکمیل شدن ردیابی و نظارت کرد. با بررسی هر مرحله از فرآیند، مدیران سازمان می توانند درک بهتری از فعالیت کلی کسب و کار به دست آورند و فرآیند ها را تطبیق یا اصلاح کنند.انتقال آسان تر دانش کسب و کار: با جابجایی و گسترش نیروی کار یک سازمان، نیاز به روشی قابل اعتماد برای انتقال دانش کسب و کار افزایش می یابد. اغلب با جابجایی کارمندان یک شرکت دانشی که به دست آورده اند، از دست می رود و سازمان با شکاف قابل توجهی مواجه می شود. در واقع با استفاده از BPMS می توان این دانش نهان را به دانش آشکار تبدیل کرد و با ثبت و مستند سازی فرآیندها این دانش را با بقیه به اشتراک گذاشت و از مشکلاتی که با تغییر نیروی کار ایجاد می شود، کاست. کاهش هزینه ها: همانطور که پیشتر گفته شد با استفاده از ابزارهای مدیریت کسب و کار می توان بخش هایی از فرآیند را که موجب کندی گردش کار در سازمان می شوند را شناسایی کرد و آن ها را اصلاح کرد. این مساله باعث می شود هزینه ی ارائه ی خدمات کمتر شود و با افزایش سرعت خدمت رسانی سود سازمان بیشتر خواهد شد.شکل۲- BPMSیک BPMSچه ویژگی هایی باید داشته باشد؟یک نرم افزار مدیریت کسب و کار باید ویژگی های زیر را داشته باشد تا بتواند در فضای رقابت باقی بماند.ابزار بصری برای نمودار فرآیندهاطراحی فرم با استفاده از darg and dropکنترل دسترسی مبتنی بر نقشپشتیبانی موبایلیابزارها و فناوری های متن باز BPMSاز جمله ابزارهای مطرح در حوزه ی BPMS می توان به ProcessMaker، Modelino و Bonitasoft اشاره کرد. در ادامه به بررسی این ابزارها می پردازیم.ابزار Modelino این یک ابزار یک نرم افزار متن باز BPM است که با ویژگی های HTML، UML، و BPMN و زبان اسکریپت سازگار است. به همین علت می توان آن را تا حد خوبی سفارشی سازی کرد و افزونه های دلخواهی را به آن اضافه کرد.همچنین از طیف گسترده ای از مدل ها و نمودار ها پشتیبانی می کند. این نرم افزار به زبان جاوا توسعه داده شده است و قسمت کوچکی از آن به زبان ++c است.اطلاعات بیشتر در مورد این ابزار از طریق این لینک قابل مشاهده است.شکل ۳- نرم افزار Modelinoابزار ProcessMaker یکی از دلایل برجسته شدن ProcessMaker در میان BPMS ها کم بودن هزینه ی سربار آن است. همچنین آسان بودن استفاده از رابط گرافیکی آن را به انتخاب بسیاری از سازمان ها تبدیل کرده است. همچنین این اببزار مجهز به یک ابزار طراحی فرم پویا است که به سازمان ها کمک می کند تا فرم های مختلفی را بسته به نیاز خود به راحتی ایجاد کنند.این نرم افزار از  BPMN 2.0 استفاده می کند و با استفاده از darg and drop در آن می توان به ایجاد فرایندها پرداخت.می توانید اطلاعات مربوط به این ابزار را از طریق سایت آن مشاهده کنید.شکل ۴- محیط ابزار ProcessMakerابزار BonitaSoftاین ابزار سبک وزن که بیشتر با نام Bonita BPM شناخته می شود با استفاده از استاندارد مدل‌سازی و نمادگذاری فرآیند کسب‌وکار (BPMN 2.0) فرآیندهای کسب و کار سازمان را خودکار می کند و به مدیریان شفافیت بیشتری در مورد مدل های فرآیند ارائه می دهد. این ابزار طوری طراحی شده است که با رشد کسب و کار سازمان می تواند ارتقا یابد.این نرم افزار تنها BPMS متن باز جهان هست که در لیست گارتنر قرار گرفته است.اطلاعات بیشتر در مورد این ابزار را از اینجا می توانید ببینید.شکل ۵- لوگوی BonitaSoftشرکت های ایرانی ارائه دهنده ی خدمات درحوزه ی BPMSاز جمله شرکت های ارائه دهنده ی خدمات BPMS  در ایران می توان به فراگستر اشاره کرد. شرکت فراگستر با بیش از دو دهه فعالیت مستمر و پویا، هم‌اکنون در زمره شرکتهای برتر ارائه دهنده نرم‌افزارهای اتوماسیون کسب و کار در کشور شناخته ‌می‌شود. این شرکت نرم افزار BPMS خود را اینگونه شرح داده است:نرم‌افزار BPMS یا فرم‌ساز مدیریت فرایندهای فراگستر نسخه بومی شده نرم‌افزار جهانی و قدرتمند پروسس‌میکر (ProcessMaker) است که یکی از بهترین نرم‌افزارهای BPMS متن باز دنیاست که در اختیار عموم قرار گرفته است.شکل ۶- ایجاد فرم فرآیند در نرم افزار BPMS فراگسترشرکت مهندسی نرم افزار رایورز از دیگر شرکت های ارائه کننده ی خدمات در حوزه ی BPMS است.نگارش نخست سیستم مدیریت فرآیندهای کسب و کار رایورز در پاییز سال 1390 با نام تجاری RayBPMS به بازار عرضه گردید و تا به امروز، توسعه آن به شکل مستمر ادامه یافته است. توضیح این سازمان در مورد BPMS ای که ارائه می دهد در زیر آمده است:راهکار RayBPMS شامل زیرساخت جامعی جهت شناسایی، تحلیل، طراحی، اجرا، یکپارچه سازی و کنترل فرآیندهای مبتنی بر سیستم در یک سازمان است. این راهکار با مدلسازی، خودکارسازی، مدیریت و بهینه سازی فرایندهای کاری و همچنین برقراری ارتباط با سایر سیستم های فعال در سازمان، امکان دستیابی به حداکثر کارایی و اثربخشی سازمانی را فراهم می سازد.شکل ۷- BPMS شرکت رایورزشرکت آرمان دنیای فناوری اطلاعات تتیس با هدف تسهیل و ساده سازی طراحی و پیاده سازی فرآیندهای سازمانی، خدمات الکترونیک و زیر سیستم های درون سازمانی تحت وب تاسیس گردید. از جمله قابلیت های سیستم مدیریت فرآیندی که این شرکت ارائه می دهد، می توان به موارد زیر اشاره کرد:امکان تعریف پروژه ها و سامانه های مختلف در سیستمامکان تعریف و مدیریت جداول و فیلدهاامکان طراحی و مدیریت گردش کارها و فرآیند هاامکان طراحی فرم ها به صورت WYSIWYGامکان طراحی گزارش های جدولی و نموداری با استفاده از ابزار گزارش سازامکان طراحی انواع قالب های گرافیکیامکان تعریف نقش های مختلف و کارتابل متناسب با آنسخن پایانیبا توجه به صحبت های مطرح شده انتخاب یک BPMS مناسب برای هر سازمانی امری ضروری به نظر می رسد. انتخاب نرم‌افزار مدیریت فرآیند کسب‌وکار مناسب برای هر سازمانی که می‌خواهد فرآیندهای خود را در سراسر وظایف انسانی و سیستمی ساده کند، یک تصمیم مهم است. سازمان ها باید برای مدیریت کسب و کار خود پلتفرمی را انتخاب نمایند که با نیازهایی سازمان مطابقت داشته باشد.«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»منابع1- https://www.creatio.com/page/bpms2- https://www.integrify.com/what-is-bpms/3- https://www.tibco.com/reference-center/what-is-bpms4- https://www.irandnn.ir/mag/what-is-bpms/5- https://kissflow.com/workflow/bpm/what-is-bpms/6- https://www.goodfirms.co/blog/best-free-open-business-process-management-software7- https://www.softwaresuggest.com/blog/top-free-open-source-bpm-software/8- https://insights.diligent.com/business-structures/six-benefits-of-business-process-management/9- https://samix.org/what-is-bpms/.</description>
                <category>زیبا امیدوار</category>
                <author>زیبا امیدوار</author>
                <pubDate>Sat, 11 Dec 2021 17:10:42 +0330</pubDate>
            </item>
                    <item>
                <title>آشنایی با ابزارهای مدیریت لاگ</title>
                <link>https://virgool.io/@m_99666406/%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C-%D8%A8%D8%A7-%D8%A7%D8%A8%D8%B2%D8%A7%D8%B1%D9%87%D8%A7%DB%8C-%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA-%D9%84%D8%A7%DA%AF-%D9%87%D8%A7-gtnuhhkugmpo</link>
                <description>مقدمهمدیریت لاگ اگر به صورت کارآمد انجام شود، می تواند به متخصصان یک سازمان کمک کند تا به برنامه های خود نظارت داشته باشند و عملکرد آن ها را بهبود بخشند.مدیریت لاگ در واقع عمل جمع‌آوری، قالب‌بندی، تجمیع و تجزیه و تحلیل داده‌های لاگ برای بهینه‌سازی برنامه‌ها و برنامه‌ها است. داده‌های موجود در لاگ ها حاوی اطلاعات ارزشمندی است که می‌تواند به تیم فنی در مورد عملکرد برنامه اطلاع دهد و به آنها کمک کند تا مشکلات را پیدا کنند. با درک بهتر عملکرد، متخصصان سازمان می توانند منابع مناسب را برای بهبود تجربه کاربر نهایی اختصاص دهند. با این حال، مدیریت موثر لاگ مستلزم صرف زمان و هزینه است. ابزارهای مدیریت لاگ مناسب می‌توانند در زمان مشاهده دستی لاگ ها صرفه‌جویی کنند و بینش‌های مهمی را برای هر کسی که می‌خواهد برنامه‌های خود را بهتر مدیریت کند، ارائه دهند.در ادامه به توضیح بیشتر در مورد مدیریت لاگ و ابزارهای مربوط به آن می پردازیم.توضیح مدیریت لاگ و کاربرد آندر دنیای کامپیوتر، لاگ فایلی است که اطلاعات مربوط به رویدادهای خاصی که در سیستم رخ می دهد را ثبت می کند.فایل‌های لاگ معمولا هر چیزی را که در پشت صحنه در سیستم‌عامل‌ها یا برنامه‌های نرم‌افزاری اتفاق می‌افتد  را ضبط می کنند. به طور خلاصه در این فایل ها هر چیزی که در سرور، شبکه، سیستم عامل و برنامه ی نرم افزاری که برای بررسی های بعدی قابل اهمیت است، ذخیره می شود. لاگ ها می‌توانند انواع رویدادها را از جمله تراکنش هایی که در یک سیستم رخ می دهد، آنچه که در حین پشتیبان‌گیری اتفاق افتاده، خطاهایی که اجرای برنامه را متوقف کرده است یا فایل‌هایی که توسط کاربران از یک وب‌سایت درخواست شده است، مستند کنند.با استفاده از ابزارهای مدیریت لاگ می توان لاگ های دریافتی از برنامه ها یا سیستم های مختلف را مشاهده کرد و از آن ها اطلاعات مفید استخراج کرد.شکل ۱- نمونه ای از یک فایل لاگمدیریت لاگ (Log Management) چیست؟مدیریت لاگ یک اصطلاح جامع است که تمام فعالیت‌ها و فرآیندهای مورد استفاده برای تولید، جمع‌آوری، متمرکز کردن، تجزیه، انتقال، ذخیره و بایگانی حجم عظیمی از داده‌های تولید شده توسط برنامه های نرم افزاری و زیر ساخت ها را توصیف می‌کند.  از آنجایی که این داده ها از منابع مختلفی می‌آیند و در قالب‌های متنوعی وجود دارند، باید در یک نقطه متمرکز شده و قالب آن ها استاندارد شود. پس از آن تیم های فنی می توانند اطلاعات ارزشمندی را از این داده ها استخراج کنند که می تواند برای بهبود عملکرد برنامه ها مفید باشد. به عنوان مثال توسعه دهندگان می توانند از این گزارش ها برای شناسایی تهدید های امنیتی برنامه های نرم افزاری خود یا عیب یابی سیستم خود استفاده کنند. چون فایل های لاگ به طور مستمر تولید می شوند، حاوی حجم بالایی از داده هستند که سازماندهی این حجم بالای داده برای تیم فنی امری مشکل است.غیر از جمع آوری و سازماندهی این داده ها، انجام جستجوهای پیشرفته در این داده ها بدون استفاده از ابزار مناسب می تواند دشوار باشد. بنابراین استفاده از یک ابزار مدیریت لاگ برای کمک به جمع آوری، ذخیره سازی و جستجو در داده ها مساله ی مهمی است.بخش های مختلف مدیریت لاگمدیریت لاگ ها به بخش های زیر تقسیم می شود:جمع آوری لاگ ها: اولین قدم در مدیریت لاگ ها مشخص کردن  نحوه جمع آوری داده های لاگ ها و محل ذخیره آن است. فایل های لاگ حاوی داده‌هایی هستند که از برنامه ها، سرورها، سیستم عامل، سوئیچ ها وفایروال ها جمع آوری شده اند. با استفاده از راه حل های مربوط به مدیریت لاگ ها می توان تنظیمات مربوط به نوع اطلاعاتی که می خواهیم جمع آوری کنیم را انجام دهیم و داده های اضافی را کنار بگذاریم و اطلاعات مورد نیاز و مرتبط را ذخیره کنیم.تجمیع متمرکز لاگ ها: تجمیع متمرکز لاگ ها فرآیندی است که در آن همه لاگ ها بدون توجه به منبع آنها در یک مکان جمع‌آوری می‌شوند. همانطور که قبلا ذکر شد، حجم داده ها یکی از بزرگترین چالش ها در این فرآیند است، اما مسائل مهم دیگری نیز وجود دارد که باید در نظر گرفته شود. مثلاً بحث صحت وجود دارد و ممکن است داده های لاگ ها دقیق نباشند. همچنین ابزار مدیریت لاگی که از آن استفاده می کنیم باید بتواند با سرعت تولید داده ها در سیستم های ما هماهنگ شود. چون لاگ ها از منابع مختلفی جمع آوری می شوند، باید تمام فایل های لاگ تولید شده در سیستم جمع آوری شود و از آن ها یک خروجی با قالب مشترک تولید شود تا اطلاعات درون لاگ ها راحت تر تجزیه و تحلیل شوند.ذخیره سازی و نگه داری طولانی مدت لاگ ها: گام بعدی در مدیریت لاگ، ذخیره و نگهداری طولانی مدت لاگ است. سوال اصلی در این مرحله این است که چه مدت باید لاگ ها را ذخیره کنیم. اگرچه ذخیره سازی لاگ ها برای مدت زمان نامحدود این امکان را به ما می دهد که در صورت نیاز بتوانیم داده های قدیمی را بازیابی کنیم اما ذخیره ی این حجم از داده ها بسیار پر هزینه خواهد بود. در نتیجه بهتر است این لاگ ها را برای یک مدت محدود ذخیره کنیم و از بخشی از لاگ ها هم پشتیبان گیری فیزیکی روی دیسک انجام دهیم. تجزیه و تحلیل لاگ ها: تجزیه و تحلیل لاگ ها بدون شک یکی از مهمترین بخش های مدیریت لاگ ها است زیرا جمع آوری و ذخیره فایل های لاگ بدون استفاده ی مفید از آن ها هیچ معنایی ندارد. ابزارهای مدیریت لاگ فرآیند تجزیه و تحلیل داده های لاگ را خودکار و ساده می کنند و راه های پیشرفته ای برای این کار ارائه می دهند. گزارش های تحلیلی داده ها از نمودارها و تصاویر برای شناسایی همبستگی ها و ارتباطات، شباهت ها، شناسایی تهدید های امنیتی و عیب یابی استفاده می کند و تشخیص مسائل و علت های آن ها را ساده تر می کند.جستجو در لاگ ها و گزارش دهی: ابزارهای مدیریت لاگ با داشتن رویکرد جمع آوری متمرکز و گزینه های جستجوی پیشرفته، جستجو در داده های لاگ ها و تولید گزارش را تسهیل می کنند. جستجوی پیشرفته به ما این امکان را می دهد که اطلاعاتی در مورد یک رویداد خاص جمع آوری کنیم. راه‌حل‌های مدیریت لاگ مجهز به ابزارهایی برای داده‌کاوی هستند که می توانند در یافتن الگوهای پنهان موجود در داده های لاگ ها موثر واقع شوند. همچنین این ابزار ها با تولید خودکار گزارش می توانند به ما در پایش عملکرد سیستم ها، وضعیت تخصیص منابع و مسائل امنتی به ما کمک کنند.شکل ۲- بخش های مختلف مدیریت لاگچرا مدیریت لاگ مهم است؟مدیریت لاگ بینشی در مورد درستی و صحت عملکرد سیستم ها و برنامه ها به ما ارائه می دهد.بدون مدیریت لاگ ها یافتن مرجع مشکلات عملکرد برنامه ها و علت رفتارهای غیر منتظره سیستم مشکل خواهد بود.مدیریت لاگ به توسعه دهندگان و  تیم زیرساخت امکان عیب یابی مشکلات را می دهد و به مدیران محصول اجازه می دهد تا اطلاعات مفیدی را از داده های تعبیه شده در لاگ ها استخراج کنند. همچنین لاگ ها یکی از منابع کلیدی داده‌ها برای تجزیه و تحلیل های امنیتی هستند مواردی مثل تشخیص تهدید،تشخیص نفوذ و امنیت شبکه و ...که  در مجموع تحت عنوان Security Information and Event Management) SIEM)  شناخته می‌شوند. از مزایای مدیریت لاگ می توان به موارد زیر اشاره کرد:ذخیره سازی یکپارچه داده بهبود امنیت از طریق کاهش سطح حمله، پایش به صورت real time و بهبود زمان تشخیص حمله و پاسخ به آن قابلیت‌های عیب‌یابی سریع‌تر و دقیق‌تر از طریق تجزیه و تحلیل های پیشرفتهمانیتورینگ و هشدارابزارها و فناوری های متن باز در حوزه ی مدیریت لاگدر این بخش به بررسی ابزارهای مطرح در حوزه ی مدیریت لاگ می پردازیم.ابزار  (Elastic Stack (ELKاین ابزار یکی از پرکاربردترین ابزارهایی است که برای مدیریت لاگ از آن استفاده می شود. استفاده از عبارت stack برای آن به این دلیل است که شامل چند ابزار است. Elastic Stack شامل بخش های زیر است:۱- Elastic Search: یک موتور جستجوی متن باز قدرتمند است.۲- Kibana: ابزار مبتنی بر وب برای تجسم و تصویر سازی (visualization) داده ها۳- Beats: کار این ابزار این است که به طور مستمر داده‌های لاگ و مانیتورینگ مربوط به هر دستگاه را به یک مخزن داده ی واحد ارسال کند.۴- Logstash: یک مخزن داده ی واحد است. در واقع جایی است که فایل های لاگ ذخیره، تجزیه، فیلتر و تجزیه و تحلیل می شوند.برای استفاده از این ابزار باید ابتدا Beats را روی همه سرورهایی که می‌خواهیم روی آن ها مانیتورینگ انجام دهیم،نصب و پیکر بندی کنیم تا داده ها را به یک سرور مرکزی در واقع جایی که Logstash را برای انجام کار تجزیه و تحلیل لاگ ها تنظیم کرده ایم، ارسال کنندو سپس داده ها را در Elastic Search ادغام کنیم تا بتوانیم  داده ی مورد نظر خود را در آن جستجو کنیم.در نهایت می توانیم از Kibana برای انواع مختلف تجسم‌ها و تصویر سازی های مفید داده های فایل های لاگ استفاده کنیم.اطلاعات بیشتر مربوط به این ابزار از طریق این لینک قابل مشاهده است.شکل ۳- Elastic Stackابزار Graylogیکی دیگر از نرم افزارهای مدیریت لاگ متن باز قدرتمند Graylog است. نصب این ابزار سریع و آسان است.Graylog یک رابط کاربری خوب را به همراه ویژگی‌های بسیاری مانند جستجوی پیشرفته (برای ساخت پرس و جوهای قدرتمند و اجرای سریع آنها)، ویژگی هشدار، تحمل خطا (برای جلوگیری از از دست دادن داده‌ها در صورت بروز مشکلات شبکه) را ارائه می کند.Graylog به زبان جاوا نوشته شده است و به خوبی پشتیبانی شده و به طور مستمر به روز می شود و افزونه های زیادی را به صورت رایگان و متن باز در اختیار کاربران قرار می دهد.ابزار Graylog بر خلاف Elastic Search یک راه حل تک برنامه ای در جمع آوری داده ها، تحلیل و visualization ارائه می دهد و نیاز به نصب چند ابزار مختلف ندارد. Graylog داده‌ها را در MongoDB جمع‌آوری و ذخیره می‌کند و روی داشبوردهای کاربر پسند به تصویر سازی داده ها می پردازد.اطلاعات بیشتر درباره ی این ابزار از اینجا قابل دستیابی است.شکل ۴- محیط ابزار Graylogابزار LOGalyzeکاربرد این ابزار در زمینه ی مانیتورینگ شبکه و مدیریت لاگ است که لاگ ها را از شبکه و هاست های ویندوزی و لینوکسی جمع آوری می کند و به تجزیه و تحلیل آن ها می پردازد. این ابزار در ابتدا تجاری بود اما اکنون بدون هیچ محدودیتی قابل دانلود و نصب است. این ابزار برای تحلیل لاگ های سرورها و برنامه ها ایده آل است و می تواند گزارش های خود را در قالب های pdf، csv و html ارائه کند. LOGalyze نیز مانند سایر ابزارهای معرفی شده، یک رابط کاربری ساده دارد که استفاده ی کاربران از این ابزار را تسهیل می بخشد.اطلاعات بیشتر در مورد این ابزار را می توانید از طریق این لینک مشاهده کنید.شکل ۵- محیط ابزار  LOGalyzeابزار GoAccessابزار GoAccess در وهله اول به عنوان یک ابزار مدیریت لاگ مبتنی بر ترمینال ساخته شد اما اکنون GoAccess یک رابط کاربری مبتنی بر وب مناسب ارائه می دهد که از داخل مرورگر قابل اجرا است.GoAccess به زبان برنامه نویسی C نوشته شده است. از جمله ویژگی های آن می توان به موارد زیر اشاره کرد:اطلاعات را به صورت real time نمایش می دهد.تقریباً از تمام فرمت‌های لاگ مانند Apache، Amazon S3، Nginx و Cloudfront پشتیبانی می‌کند.برای کار با GoAccess نیازی به نصب کتابخانه و ابزار دیگری نیست.طرح و رنگ زمینه ی رابط کاربری آن قابل شخصی سازی است.از چندین هاست مجازی پشتیبانی می کند.اطلاعات بیشتر در مورد این ابزار از طریق وبسایت آن قابل دسترسی است.شکل ۶- محیط ابزار GoAccessشرکت های ایرانی ارائه دهنده خدمات در حوزه ی مدیریت لاگاز جمله شرکت های ایرانی فعال در این زمینه می توان به شرکت دانش بنیان پلتکو اشاره کرد.پلتکو یک شرکت دانش بنیان است که با بهره‌گیری از کارشناسان ارشد حوزه معماری زیر ساخت سرویس ‌های سازمانی، خدمات یکپارچه سازی و مدیریت وب سرویس نظیر ESB و API MANAGER و ... ارائه می‌دهد.در سایت این شرکت در مورد مدیریت لاگ متن زیر آورده شده است:سازمان‌ها با استفاده از نرم افزارlog management   می‌توانند تمامی این لاگ‌ها را به صورت برخط و یکپارچه ذخیره سازی و تحلیل کنند. نرم افزار مدیریت لاگ به سازمان‌ها کمک می‌کند سطح نظارتی خود را چندین مرتبه عمیق‌تر کنند و با تحلیل لاگ‌ها روند‌های مشکل آفرین و تهدید آمیزی که از دید ساختار مانیتورنیگ پنهان است را کشف کرده و پیش از وقوع بحران مشکل را برطرف کنندشکل ۷- ابزار log management شرکت پلتکواز جمله دیگر شرکت های فعال در این زمینه کوالاتک است.مجموعه کوالاتک، ارائه دهنده خدمات تخصصی تست نرم افزار و تضمین کیفیت می باشد. این شرکت ابزار مدیریت لاگ خود را اینگونه توصیف کرده است:سیستم مدیریت لاگ کوالاتک (Log Management) ابزاری است که به سازمان کمک می‌کند تا لاگ‌های مختلف نرم افزارها، اپلیکیشن ها و … را در این ابزار جمع‌آوری کند و آنها را متناسب با نیاز خود ساماندهی نماید.شکل ۸- ویژگی های ابزار مدیریت لاگ شرکت کوالاتک«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»منابع1- https://www.graylog.org/post/what-is-log-management-a-complete-logging-guide2- https://www.humio.com/glossary/log-management/3- https://opensource.com/article/19/4/log-analysis-tools4- https://fosspost.org/open-source-log-management/5- https://sematext.com/guides/log-management/6- https://platco.ir/services/monitoring/log-manager/7- https://qualatech.ir/log-management/</description>
                <category>زیبا امیدوار</category>
                <author>زیبا امیدوار</author>
                <pubDate>Thu, 09 Dec 2021 22:07:31 +0330</pubDate>
            </item>
                    <item>
                <title>آشنایی با Enterprise Service Bus) ESB)</title>
                <link>https://virgool.io/@m_99666406/%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C-%D8%A8%D8%A7-enterprise-service-bus-esb-sirkv98qixtq</link>
                <description>مقدمهگذرگاه سرویس سازمانی یا ESB که مخفف Enterprise Service Bus است، یک الگوی معماری است که امکان ارتباط بین برنامه های مختلف را در معماری سرویس گرا (SOA) فراهم می کند. در واقع به جای اینکه ارتباط بین برنامه ها به صورت مستقیم و با روش های متفاوت پیغام رسانی انجام شود، پیغام ها به گذرگاه سرویس ارسال شده و پاسخ نیز از گذرگاه دریافت می شود. ESB تبدیل مدل های داده و پروتکل های ارتباطی را انجام می دهد، ارتباطات را مدیریت می کند، مسیریابی پیام را به عهده دارد و به طور کلی ترکیب درخواست های متعدد را مدیریت می کند. گذرگاه سرویس سازمانی می تواند این ادغام ها و تبدیل ها را به عنوان یک رابط سرویس برای استفاده ی مجدد توسط برنامه های کاربردی جدید در دسترس قرار دهد.در ادامه به توضیح بیشتر در مورد ESB و کاربرد آن می پردازیم.توضیح ESB و کاربرد آنفرض کنید دو سرویس در یک سازمان وجود دارد که نیاز به تبادل داده دارند. تیم های فنی  راه حلی را طراحی و اجرا می کنند که امکان تعامل این سرویس ها با یکدیگر را برقرار می کند. مدتی بعد، سازمان چندین سامانه دیگر را مستقر می کند که نیاز به تعامل با یکدیگر و همچنین ارتباط با دو سرویس موجود دارند. به توافق رسیدن همه ی تیم های توسعه دهنده برای پیدا کردن بهترین راه حل برای تعامل این سرویس ها با هم مشکل است.شکل ۱- پیچیدگی ارتباطات بین application های مختلف در یک سازماناستفاده از سرویس ها و برنامه های مختلف در یک سازمان ممکن است باعث ایجاد آشفتگی و بی نظمی شود. در ارتباطات نقطه به نقطه سرویس‌های سازمان عملکرد در میان سرویس‌ها انتشار می‌یابد و هیچ روش مرکزی برای نظارت و مدیریت آن  وجود ندارد که باعث بروز مشکلات زیادی می شود. این موضوع را اغلب به عنوان کد اسپاگتی می شناسند که باعث ایجاد وابستگی شدید بین سرویس‌ها می‌شود.هدف از استفاده ی ESB در یک سازمان، کاهش این آشفتگی ها است. در معماری زیر ساخت یک سازمان ESB به عنوان یک واسط بین سرویس ها و سرویس گیرندگان قرار می گیرد و باعث ادغام و یکپارچگی سامانه های مختلف نرم افزاری یک سازمان می شود. در واقع گیرندگان سرویس با یک گذرگاه ارتباطی تعامل می کنند و به جای اینکه درخواست خود را به طور مستقیم به سرویس ارسال کنند، همه ی درخواست ها به ESB فرستاده می شوند و در ESB پس از پردازش محتوای درخواست، فیلتر، تغییر و تبدیل پیام و رویداد نگاری، مسیریابی به سرویس مقصد انجام می شود و پس از دریافت پاسخ آن را در اختیار سرویس گیرنده قرار می دهد. همچنین ESB نقش مدیریت تراکنش ها را نیز به عهده دارد و هماهنگی تراکنش های توزیع شده ای که چند سرویس با آن ها درگیر هستند را انجام می دهد.شکل ۲-شمای کلی ESBافزایش چابکی سازمان،کاهش زمان ورود به بازار، جلوگیری از بروز خطاها، صرفه جویی‌های مالی و زمانی یکی از رایج ترین دلایلی است که سازمان ها از ESB در زیر ساخت فناوری اطلاعات سازمان خود استفاده می کنند. همچنین ESB باعث می شود که معماری سازمان منعطف و مقیاس پذیر شود. پیاده سازی ESBدر واقع در ESB تمرکز اصلی این است که سیستم ها را از یکدیگر جدا کنیم. همچنین به آنها این امکان را می‌دهد که بدون وابستگی یا شناخت سیستم‌های دیگر در گذرگاه با هم ارتباط برقرار کنند. مفهوم گذرگاه برنامه ها را از یکدیگر جدا می کند. این کار معمولاً با استفاده از یک سرور پیام رسانی مانند JMS یا AMQP انجام می شود.داده هایی که در ESB جابجا می شوند دارای فرمت متعارفی هستند و تقریبا همیشه XML هستند.یک سازگار کننده (adaptor) بین برنامه کاربردی و گذرگاه وجود دارد که داده ها را بین دو طرف جمع می کند. این سازگارکننده مسئول مکالمه با برنامه کاربردی و تبدیل داده ها از فرمت برنامه به فرمت گذرگاه است. سازگار کننده همچنین می تواند مجموعه ای از فعالیت های دیگر مانند مدیریت تراکنش مسیریابی پیام، امنیت، نظارت، رسیدگی به خطا و غیره را انجام دهد.مزایای استفاده از ESB  برخی سازمان ها هنوز از سرویس های قدیمی خود استفاده می کنند که این سرویس های قدیمی برای عملیات شرکت حیاتی هستند. سازمان ها می توانند با استفاده از ESB  این سیستم های قدیمی و غیر قابل انعطاف را به شکل استاندارد و مطلوب خود در آورده و به بقیه سرویس ها متصل کنند. گذرگاه خدمات سازمانی به طرز قابل توجهی فرآیند یکپارچه‌سازی چندین محیط و سیستم  ناهمگن را ساده می کند.علاوه بر این موضوع می توان به موارد زیر اشاره کرد:۱- فراهم کردن یک نقطه دسترسی واحد: از آنجایی که کار یکپارچه سازی در ESB انجام می شود، می توان یک تیم اختصاصی برای ایجاد، مدیریت و عیب یابی یکپارچه سازی سیستم ها روی ESB داشته باشیم. این کار باعث صرفه جویی در زمان و هزینه می شود. ۲- ساده شدن ارتباطات: یک ابزار ESB می تواند چندین پروتکل را در انتقال داده ها از یک برنامه به برنامه ی دیگر مدیریت کند. در واقع می تواند به عنوان یک مترجم سراسری عمل کند و ارتباط بین چندین سیستم که با زبان متفاوت با هم صحبت می کنند را ممکن می سازد. در واقع باعث استاندارد سازی پیام بین خدمات سراسر سازمان می شود.۳- کمک به توسعه دهندگان: ESB به توسعه دهندگان این امکان را می دهد که یک پیکر بندی ایجاد کنند که می تواند برای هر برنامه ی متصل به گذرگاه سرویس اعمال شود. این مساله به ارتقا سیستم کمک می کند و سرعت اعمال تغییر روی برنامه ها را بهبود می بخشد.۴- افزایش امنیت: از آنجایی که ESB یک نقطه ی ورودی واحد است، می تواند به عنوان دروازه ای برای پروتکل های امنیتی و صدور مجوز عمل کند و از دسترسی های غیر مجاز به سرویس ها جلوگیری کند.۵- مقیاس پذیری:‌ از راهکارهای نقطه ای تا استقرار در کل سازمان را در بر می گیرد.معایب استفاده از ESBعلی رغم آن که ابزارهای ESB روشی قابل اعتماد برای اتصال برنامه‌ها هستند، فناوری آن‌ها با غالب شدن cloud بر اکوسیستم‌های دیجیتالی منسوخ‌تر می‌شود و شرکت‌ها نرخ رشدی را تجربه می‌کنند که به سازگاری سریع‌تر در سیستم‌هایشان نیاز دارد. می توان به موارد زیر به عنوان معایب ESB اشاره کرد:۱- ایجاد bottleneck: از آنجایی که ESB یک سیستم متمرکز از اتصالات است و اغلب توسط یک تیم تخصصی فناوری اطلاعات مدیریت می‌شود، زمانی که تقاضا برای ارتقاء یا اصلاح برنامه‌ها افزایش می‌یابد و درخواست‌های بیشتری در سیستم ارائه می‌شود، برخی از تیم‌ها در صف می‌مانند. این مورد می تواند بهره وری را متوقف کند.۲- نیاز به توسعه دهندگان با تجربه: در حالی که پیکربندی های کمتری در ESB ها نسبت به سیستم های یکپارچه سازی P2P مورد نیاز است، پیچیدگی موجود در مدیریت طولانی مدت یک ESB می تواند به توسعه دهندگان با تجربه نیاز قابل توجهعی داشته باشد. استفاده از این توسعه دهندگان با تجربه هزینه ی زیادی برای سازمان دارد.۳- ایجاد مشکل در گذرگاه: از آنجایی که ESB هسته مرکزی سیستم یکپارچه سازی است، در صورتی که با مشکل مواجه شود، برنامه هایی که به آن متصل هستند نیز در سرویس دهی دچار مشکل می شوند.همچنین در پاسخ به این سوال که ESB برای چه سازمان هایی مناسب است می توان گفت سازمان هایی که در آن ها تعداد سرویس ها زیاد می شود، تعداد زیر مجموعه های داخلی سازمان در حال زیاد شدن است و ارتباط مستمر بین سرویس دهنده و سرویس گیرنده از اهمیت بالایی برخوردار باشد. همچنین سازمان ها باید این نکته را در نظر داشته باشند که اگر  خواهان استفاده ساده تر، ثبات محصول و مالکیت هستند، استفاده از ESB های اختصاصی برای آن ها مناسب تر است اما اگر سهولت نصب و کاهش هزینه فاکتورهای مهمی برای سازمان باشند، انتخاب یک ابزار ESB متن باز پیشنهاد بهتری است .در واقع ESB های اختصاصی می توانند گران تر از ESB های متن باز باشند و همچنین نصب آنها دشوارتر است. در همین حال، استفاده از ESB های متن باز می تواند برای ادغام در ارائه دهندگان مختلف در یک سناریوی ترکیب و تطبیق مشکل باشند و همچنین به مهارت و زمان بیشتری برای آزمایش و مدیریت نیاز دارند.ابزارها و فناوری های متن باز ESBاز جمله ابزار های مطرح ESB می توان به Oracle ESB، MuleSoft و WSO2 اشاره کرد. در ادامه به بررسی این ابزارها می پردازیم.ابزار MuleSoftشرکت MuleSoft یک ابزار متن باز برای ESB ارائه داده است که اطلاعات مربوط به آن از طریق لینک زیر قابل دسترسی است.شکل۳- تصویری از محیط ابزار Mule ESBاز مزایای این ابزار می توان به موارد زیر اشاره کرد:این ابزار سبک‌ترین پلتفرم یکپارچه‌سازی موجود است و از نظر طراحی ماژولار است.همچنین هزینه ی ایجاد تغییرات در ادغام های موجود کم است. استقرار این ابزار سریع است. این ابزار یک کانتینر خدمات سبک و مقیاس پذیر برای انتشار خدمات REST و SOAP ارائه می دهد. از آنجایی که Mule به شدت با Spring ادغام می شود، به این معنی است که توسعه دهندگان همچنین می توانند از قابلیت های Spring برای پیاده سازی منطق کسب و کار خود استفاده کنند.هر توسعه دهنده ای می تواند این ابزار را یاد بگیرد زیر ا ابزارهای رایجی استفاده می کند که همه توسعه دهندگان جاوا با آن آشنا هستند، مانند Maven، Eclipse، JUnit.یکی از ویژگی های این است ابزار این است که فرمت پیام های XML را برای مبادله ی پیغام ها به کاربران خود تحمیل نمی کند.علاوه بر این، Mule streaming به توسعه دهندگان اجازه می دهد تا پیام های بزرگ را به طور موثر پردازش کنند.ابزار WSO2ابزار مطرح دیگر که ارائه دهنده ی ESB است، WSO2 می باشد. اطلاعات این ابزار در لینک زیر قابل مشاهده است. همچنین در تصویر زی بخشی از محیط این ابزار را مشاهده می کنید.شکل ۴- محیط نرم افزار WSO2مزایای این ابزار به شرح زیر است:تبدیل پیام ها با XSLT 1.0/2.0، XPath، XQuery و Smooksمسیریابی مبتنی بر سربرگ (header)، محتوا، مبتنی بر قانون و اولویت‌محورپشتیبانی از پروتکل های HTTP، HTTPS، WebSocket، POP، IMAP، SMTP و ...پشتیبانی از RDBMS، CSV، Excel، Cassandraامکان ادغام با Prometheus، Graphana، Jaeger،Fluent Bitامکان ادغام با Docker، Kubernetes و سایر پلتفرم های مدیریت کانتینرمبدل های تبدیل CSV، JSON و XMLابزار Oracle ESBیکی  دیگر از ابزارهای مربوط به حوزه ی ESB، ابزار ESB است که متعلق به Oracle است که اطلاعات مربوط به ساختار و نحوه ی استفاده از آن در اینجا قابل مشاهده است. تصویر زیر محیط این ابزار را نشان می دهد.شکل ۵- محیط نرم افزار Oracle ESB شرکت های ایرانی ارائه دهنده خدمات ESBاز جمله شرکت های ارائه دهنده ی خدمات ESB در ایران می توان به شرکت داده پرداز پویای شریف اشاره کرد که یک شرکت دانش بنیان است که در زمینه ی ارائه ی راهکارهای جامع تخصصی تحت وب و موبایل فعالیت می کند. طبق گفته ی این شرکت پلتفرم ESB داده‌پرداز محصولی دانش‌بنیان است که تا به امروز در سامانه‌های بزرگی همچون سامانه فروش بلیط بن ریل، اپلیکیشن خدمت در محل همراه یار، پرتال دولت الکترونیک و ... به کاربرده شده و ویژگی اصلی آن، توانایی برقراری ارتباط با ماکروسرویس‌های بزرگ و برقراری جریان امنیت اطلاعات و مدیریت آنهاست.شکل ۶- مراحل پیاده سازی ESB در داده پردازپلتکو نیز یک شرکت دانش بنیان است که با بهره‌گیری از کارشناسان ارشد حوزه معماری زیر ساخت سرویس ‌های سازمانی، خدمات یکپارچه سازی و مدیریت وب سرویس نظیر ESB و API MANAGER و ... ارائه می‌دهد.شکل ۷- استفاده از پلتفرم پلتکو برای یکپارچه سازی سرویس های سازمانیکی دیگر از شرکت های ارائه دهنده خدمات ESB در ایران شرکت پارس تصمیم است که راه ­حل­ها و خدمات مرتبط با فناوری اطلاعات را ارائه می نماید. این شرکت به طور کلی در زمینه ی ارائه راه حل های جامع در حوزه های مدیریت قوانین سازمانی (BRM)، مدیرت منابع سازمانی (ERP)، گذرگاه سرویس سازمانی (ESB) و ... فعالیت می کند. جمع بندیاستفاده از ESB در یک سازمان علی رغم پیچیدگی هایی که می تواند داشته باشد، مفید است. ESB یک ابزار گسترده است که خدمات متفاوتی را ارائه می دهد. استفاده از  ESBها رایج هستند و علیرغم برخی اشکالات، برای تسهیل به اشتراک گذاری خدمات و فرآیندها در سراسر یک شرکت و جداسازی خدمات تجاری از اجرای سرویس بسیار مفید هستند. همچنین سازمان ها برای انتخاب یک پلتفرم یکپارچه سازی برای سازمان خود باید به نیاز های خود توجه داشته باشند و مواردی مانند هزینه، امنیت و مقیاس پذیری ابزار را در نظر داشته باشند.«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»منابع1- https://www.cleo.com/blog/knowledge-base-enterprise-service-bus-esb2- https://www.interlogica.it/en/insight-en/enterprise-service-bus-what-you-need-to-know/3- https://www.oreilly.com/library/view/enterprise-service-bus/0596006756/ch01.html4- http://www.parstasmim.com/راه-حل-جامع-گذرگاه-سرویس-سازمانی/5- https://dadehpardaz.com/blog/esb/6- https://platco.ir/services/integration-web-services/enterprise-service-bus/7- https://www.faragostar.net/what-is-esb/8- https://www.it.ucla.edu/news/what-esb9- https://en.wikipedia.org/wiki/Enterprise_service_bus10- https://www.mulesoft.com/resources/esb/what-esb11- https://www.ibm.com/cloud/learn/esb12- https://www.tookasoft.com/products/esb/</description>
                <category>زیبا امیدوار</category>
                <author>زیبا امیدوار</author>
                <pubDate>Thu, 09 Dec 2021 02:34:25 +0330</pubDate>
            </item>
                    <item>
                <title>روش C4 در مستند سازی معماری نرم افزار</title>
                <link>https://virgool.io/@m_99666406/%D8%B1%D9%88%D8%B4-c4-%D8%AF%D8%B1-%D9%85%D8%B3%D8%AA%D9%86%D8%AF-%D8%B3%D8%A7%D8%B2%DB%8C-%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-dhyct2aj4ihd</link>
                <description>اگر از یک معمار ساختمان بخواهیم که معماری یک ساختمان را به صورت تصویری به ما نشان دهد، نقشه های کلی، پلان های طبقات، نماها و نقشه های جزئیات را به ما نشان می دهد. اگر همین درخواست را از یک توسعه دهنده ی نرم افزار داشته باشیم و بخواهیم معماری سیستم نرم افزاری خود را به ما نشان دهد، احتمالا با نمودارهای به هم ریخته ای که شامل نام گذاری های مبهم ، روابط نامشخص و خطوط درهم هستند مواجه میشویم. به دلایل بالا و همچنین تلاش تیم ها برای حفظ چابکی خود، بسیاری از آن ها تلاش های مستندسازی خود از جمله استفاده از UML را متوقف کرده یا کاهش داده اند و استفاده از تخته برای رسم نمودار را ترجیح می دهند. با توجه به اهمیت وجود نمودارها برای درک معماری سیستم های نرم افزاری و همچنین برای حل مشکلات مطرح شده روش C4 ارائه شد.مدل C4 راهی را برای تیم‌های توسعه نرم‌افزار فراهم می‌کند تا به طور کارآمد و مؤثر معماری نرم‌افزار خود را در سطوح مختلف از جزئیات برای انواع مختلف مخاطب به اشتراک بگذارند.شکل ۱ - استفاده از تخته برای رسم نمودار سیستمروش C4 چیست؟مدل C4 به عنوان راهی برای کمک به تیم های توسعه نرم افزار برای توصیف معماری نرم افزار و بررسی ساختار ایستا یک سیستم نرم افزاری، توسط یک معمار نرم افزار به نام Simon Brown بین سال های ۲۰۰۶ تا ۲۰۱۱ بر مبنای زبان مدلسازی UML و مدل معماری 4+1 ارائه شد.یک مدل C4 معماری نرم افزار را در سطوح مختلف جزئیات توصیف می کند. مدل C4 مجموعه ای از نمودارها است که چهار سطح Context(سیستم)، Containers(کانتینرها)، Components(مولفه ها) و Code(کد) یک سیستم نرم افزاری را نشان می دهد.سلسله مراتب این نمودارها به مخاطبان مختلف اجازه می دهد تا معماری نرم افزار را در سطح جزئیات مورد نیاز خود درک کنند. نمودارهای C4 یک چارچوب جایگزین و ساده شده در مقایسه با نمودارهای UML هستند که می توانند چندین سیستم را توصیف کنند.شکل ۲- سطوح مختلف در مدل C4سطوح مدل C4همانطور که پیشتر گفته شد مدل C4 دارای ۴ سطح نمودار سیستم، کانتینرها، مولفه ها و کد است که در ادامه به توضیح هر کدام با ذکر یک مثال مربوط به سیستم بانکداری اینترنتی می پردازیم.سطح اول:‌نمودار مفاهیم سیستم (System Context diagram)این نمودار نقطه شروع خوبی برای ترسیم نمودار و مستندسازی یک سیستم نرم افزاری است که این امکان را به می دهد تا یک نمای کلی از سیستم نرم افزاری ببینیم تا دریابیم سیستم چه کاری انجام می دهد، چه کسانی از آن استفاده می کنند و با چه سیستم های دیگری تعامل خواهد داشت. در این نمودار سیستم ما در مرکز به شکل جعبه ای قرار می گیرد و کاربران و سایر سیستم هایی که با آن در تعامل هستند، نمایش داده می شوند. جزئیات در این نمودار مهم نیست چون این نمودار نمای کوچکی از چشم انداز سیستم است. همچنین در این نمودار تمرکز بر کاربران و سایر سیستم های در ارتباط است و به جزئیات سطح پایینی مثل فناوری ها و پروتکل ها توجه نمی کنیم. مخاطب این نمودار می تواند همه ی افراد اعم از فنی و غیر فنی چه در داخل و چه خارج تیم توسعه ی نرم افزار باشد. شکل زیر یک نمونه از نمودار مفاهیم سیستم است که یک سیستم بانکداری اینترنتی را توصیف می کند. شکل ۳- نمودار مفاهیم سیستم برای یک سیستم بانکداری اینترنتیمشتریان بانک از سیستم بانکداری اینترنتی برای مشاهده اطلاعات حساب های بانکی خود و انجام پرداخت ها استفاده می کنند. سیستم بانکداری اینترنتی از سیستم بانکداری مرکزی موجود بانک برای انجام این کار استفاده می کند و از سیستم ایمیل بانک برای ارسال ایمیل به مشتریان استفاده می کند. رنگ خاکستری در این نمودار مربوط به سیستم های نرم افزاری است که از قبل وجود داشته اند و رنگ آبی نشان دهنده ی سیستم هایی است که قرار است ساخته شوند.سطح دوم:‌نمودار کانتینرها (Container diagram)گام مفید بعدی این است که با نمودار Container، مرز سیستم را مشخص کنیم. یک کانتینر یک واحد است که قابلیت اجرا و یا استقرار را به صورت مستقل دارد. این نمودار شکل سطح بالا (high level) معماری نرم افزار و توزیع نقش ها را در آن نشان می دهد. همچنین انتخاب های اصلی فناوری های مورد استفاده و ارتباط کانتینرها با هم در این نمودار قابل درک است که برای توسعه دهندگان نرم افزار و تیم پشتیبانی نرم افزار مفید است.در شکل زیر نمونه ای از نمودار کانتینر برای سیستم بانکداری اینترنتی آورده شده است. از این نمودار می توان دریافت که سیستم بانکداری اینترنتی از پنج کانتینر تشکیل شده است: یک برنامه وب سمت سرور، یک اپلیکیشن تک صفحه ای(single page application)، یک اپلیکیشن تلفن همراه، API و یک پایگاه داده.شکل ۴- نمودار کانتینر برای یک سیستم بانکداری اینترنتیسطح سوم:‌نمودار مولفه (Component diagram)در مرحله ی بعد می توانیم بزرگنمایی را بیشتر کنیم و مولفه های تشکیل دهنده ی هر کانتینر را شناسایی کنیم. این نمودار  یک تجرید از کدهای سیستم را نشان می دهد و نقش هر یک از مولفه ها، مسئولیت آن ها و جزئیات اجرای آن ها را نشان می دهد. مخاطبان این نمودار معماران و توسعه دهندگان نرم افزار هستند. این نوع نمودار با نمودار مؤلفه‌های UML قابل مقایسه است، اما از قوانینی که کمتر دقیق هستند، استفاده می کنند. در شکل زیر نمودار مولفه مربوط به بخش API یک سیستم بانکداری اینترنتی نمایش داده شده است.شکل ۵- نمودار مولفه برای یک سیستم بانکداری اینترنتیسطح چهارم:‌نمودار کد (Code diagram)در آخر می توانیم پیاده سازی هر مولفه را با استفاده از نمودار کلاس UML یا نمودارهای ارتباط موجودیت (ERD) انجام دهیم. پیاده سازی این سطح از جزئیات فقط برای مولفه های مهم یا پیچیده سیستم توصیه می شود.شکل زیر نمودار کلاس UML را برای مولفه ی MainframeBankingSystemFacade را نشان می دهد.شکل ۶- نمودار کدنشانه گذاریمدل C4 نشانه گذاری خاصی ندارد و می توانیم از هر نماد ساده ای که به خوبی مفهوم را منتقل کند استفاده کنیم. همچنین یک پیشنهاد می تواند استفاده از نمادهای UML باشد. صرف نظر از نماد مورد استفاده در این مدل، توصیه می شود که هر عنصر شامل نام، نوع عنصر و نوع فناوری مورد استفاده باشد. همچنین اضافه کردن یک متن توصیفی کوتاه می تواند بسیاری از ابهامات ممکن را رفع کند. برای هر نمودار در نظر گرفتن یک عنوان نیز ضروری است.شکل ۷- نمونه ای از نشانه گذاری در مدل C4ابزارابزارهایی مانند Structurizr و Gliffy برای طراحی مدل C4 وجود دارند که می توانیم با آن ها نمودارهای مختلفی ایجاد کنیم. شکل زیر نمونه ای از رسم نمودار کانتینر برای یک سیستم نرم افزاری را در محیط نرم افزار Gliffy نشان می دهد.شکل ۸- نمودار Container در Glifffyجمع بندیمدل C4 یک راه ساده برای درک معماری نرم افزار در سطوح مختلف انتزاعی است، به طوری که می توان با استفاده از سطوح مختلف آن جزئیات قابل درکی را برای هر نوع مخاطبی ارائه کرد. همچنین راهی برای معرفی  برخی مدل‌سازی‌های دقیق و سبک به تیم‌های توسعه نرم‌افزار است.«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»منابعhttps://c4model.comhttps://www.infoq.com/articles/C4-architecture-model/https://en.wikipedia.org/wiki/C4_modelhttps://www.gliffy.com/blog/c4-modelhttps://structurizr.com  </description>
                <category>زیبا امیدوار</category>
                <author>زیبا امیدوار</author>
                <pubDate>Fri, 19 Nov 2021 00:21:11 +0330</pubDate>
            </item>
            </channel>
</rss>