<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های zahra khabar</title>
        <link>https://virgool.io/feed/@zahra.khabar2014</link>
        <description>کارشناس تست وکیفیت  نرم افزار در شرکت پردازشگران سامان و در پروژه بلوبانک</description>
        <language>fa</language>
        <pubDate>2026-06-16 17:48:16</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1324382/avatar/avatar.png?height=120&amp;width=120</url>
            <title>zahra khabar</title>
            <link>https://virgool.io/@zahra.khabar2014</link>
        </image>

                    <item>
                <title>بررسی معماری میکروسرویس در صنعت بانکداری(بانکداری دیجیتال)</title>
                <link>https://virgool.io/@zahra.khabar2014/%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C-%D9%85%DB%8C%DA%A9%D8%B1%D9%88%D8%B3%D8%B1%D9%88%DB%8C%D8%B3-%D8%AF%D8%B1-%D8%B5%D9%86%D8%B9%D8%AA-%D8%A8%D8%A7%D9%86%DA%A9%D8%AF%D8%A7%D8%B1%DB%8C%D8%A8%D8%A7%D9%86%DA%A9%D8%AF%D8%A7%D8%B1%DB%8C-%D8%AF%DB%8C%D8%AC%DB%8C%D8%AA%D8%A7%D9%84-ipvuxyyc3zwm</link>
                <description>مقدمه:از آن‌جایی که سازمان‌های بیشتری رایانش ابری را در قالب استراتژی تحول دیجیتال خود قرار می‌دهند. مهم است که معماری‌ها و روش‌های توسعه مناسب را برای بهره‌گیری از مزایای کامل ابر اتخاذ کنند. رقابت امروز در بازار بانکداری دیجیتال به همان اندازه شدید است که قبلا هرگز نبوده‌است.معماری میکروسرویس‌ها چابکی و چرخه‌های توسعه و استقرار سریع‌تر، مقیاس‌پذیری عملکرد انتخاب شده، و توانایی توسعه راه‌حل‌ها با استفاده از ترکیبی از فناوری‌ها را ارائه می‌دهند. هدف معماری میکروسرویس تجزیه یک برنامه بکپارچه به مجموعه‌ای از خدمات مستقل است که از طریق APIهای باز یا پیام‌رسانی بسیار مقیاس‌پذیر با یکدیگر ارتباط برقرار می‌کنند. به طور خلاصه، معماری میکروسرویس‌ها برای ساخت راه‌حل‌های مبتنی بر ابر چابک و مقیاس‌پذیر مناسب‌تر است.نحوه کمک معماری میکروسرویس در  موضوعی چون customer-first بودن و ارائه خدمات customaize شده است كه اين خود مستلزم ارتقاي مداوم فناوري‌ها و عملكرد محصول است. اينكه معماری ميكروسرويس به بانكداری ديجيتال كمك مي‌كند كه مدام عملكرد بهبود يافته، نوآوری ايجاد شود و ويژگی‌های سريع و جديد و كارآمد پياده‌سازی شود.ايده استفاده از معماری ميكروسرويس از تقسيم برنامه‌ها به چندين خدمت به جهت افزايش كيفيت و سرعت تحويل بوده و به همين دليل امكان نوآوری و توسعه مداوم برنامه‌های نرم‌افزاری پيچيده در مقياس بزرگ را فراهم می‌كند. از لحاظ عملی نيز ، معمار ی به تيم توسعه اجازه می‌دهد تا پروژه‌های توسعه و آزمايش بسياری را به طور همزمان انجام دهد تا تمام اجزای برنامه را به صورت يكپارچه فعال كند.در نهايت امروزه مشتريان بر اساس تجربه خود تصميمات بانكی خود را در مورد بانكی كه می‌توانند به آن اعتمادكنند، می‌گیرند. به همين دليل است كه مشتری اول و ديجيتال اول بخش مهمی از هر شركت مالی برای بقا هستند. در چنين شرايطی ، معماری ميكروسرويس‌ها می‌تواند به بانک‌های ديجيتال كمک كند تا زمان بازاريابیو بهبود خدمات خود را تسريع بخشند .میکروسرویس ها در مقابل SOAدر SOA، سرویس‌ها نیازی ندارند که با داده‌ها و رابط کاربری همراه باشند. پایگاه داده SOA هیچ تمرکزی بر واحدهای استقرار مستقل و پیامدهای مرتبط ندارد، و این مورد  به سادگی رویکردی برای ارتباط بین کسب و کار است. ایده SOA فعال کردن برنامه‌نویسی در سطح کسب‌وکار از طریق موتورهای پردازش تجاری و زبان‌هایی مانند WS-BPEL و BPMN بود که بر پایه ادبیات گسترده مدل‌سازی کسب‌وکار ساخته شده‌اند. علاوه بر این، تأکید همه بر ترکیب خدمات بیشتر نسبت به توسعه و استقرار خدمات بود.اصول معماری میکروسرویس:هر معماری میکروسرویس مبتنی بر سه اصل اساسی است که در ادامه به توضیح آن پرداخته خواهد شد: اصل Bounded Context: یکی از ویژگی‌های میکروسرویس ، تمرکز بر روی قابلیت‌های تجاری است. عملکردهای مرتبط در یک واحد ترکیب می‌شوند و بعدا بعنوان یک سرویس پیاده می‌شود.اصل Independency: هر سرویس در میکروسرویس، مستقل از سایرین از نظر عملیاتی است و دارای اتصال سست در عین انسجام بالاست.سایز Size: اندازه یک مفهوم حیاتی برای میکروسرویس ها است و مزایای عمده ای را از نظر قابلیت نگهداری و گسترش سرویس به ارمغان می آورد. استفاده اصطلاحی از معماری میکروسرویس‌ها نشان می‌دهد که اگر یک سرویس بیش از حد بزرگ است، باید به دو یا چند سرویس تبدیل شود، بنابراین جزئیات حفظ می‌شود و تمرکز بر ارائه تنها یک قابلیت تجاری واحد حفظ می‌شود.دلایل استفاده از معماری میکروسرویس در بانکداری:کار کردن ساده با میکروسرویسعدم دور ریختن زیرساخت‌های موجودمدیریت تغییرات و کاهش زمان خرابی و هزینهمدیریت جنبه‌های امنیتی بانکداری در اولویتتقسیم برنامه به خدمات مستقل در شرکت‌هاهدف هر دو معماری SOA و MSA (میکروسرویس) تبدیل معماری‌های قدیمی غیرقابل انعطاف به معماری‌های مبتنی بر خدمات است که برای توسعه راه‌حل‌های دیجیتال نوآورانه انعطاف‌پذیر و چابک‌تر است.در سازمان‌های پیچیده مثل بانک‌های سنتی، بلوغ SOA کلید غلبه بر سیستم‌های قدیمی بعنوان بازدارنده تحول بانکداری دیجیتال است. در حالی که SOA یک عامل کلیدی برای چابکی راه‌حل‌های داخلی در حضور سیستم‌های قدیمی یکپارچه است. این معماری به خوبی در فضای ابر که پیاده‌سازی‌های یکپارچه غیرعملی است، صورت نمی‌گیرد. بنابراین MSA اکنون یک عامل کلیدی برای چابکی‌ راه‌حل‌های مبتنی بر ابر است. با شرط اینکه میکروسرویس‌ها در سطح مناسب کپسوله‌سازی یا Bounded Context طراحی شده باشد.معماری لایه‌ای میکروسرویس:1- یک میکروسرویس اتمی، یک سرویس ریز دانه است که عملکرد و داده های یک واحد تجاری واحد مانند محصول را در بر می گیرد. بعنوان مثال، سرویس محصول مالک داده‌های محصول است، یعنی؛ اگر هر سرویس دیگری به داده های محصول نیاز دارد، باید از طریق رابط سرویس محصول به آن دسترسی داشته باشد. سرویس محصول عملکردها یا عملیات‌هایی را از طریق رابط کاربری خود نشان می‌دهد، مانند: داده‌های محصول را دریافت کنید، داده‌های محصول جدید را ارسال کنید (ایجاد کنید)، داده‌های محصول موجود را قرار دهید (به‌روزرسانی کنید)، و داده‌های محصول را حذف کنید. میکروسرویس‌های اتمی کوچک‌ترین ماژول‌های نرم‌افزاری قابل استفاده مجدد را نشان می‌دهند که نمی‌توان آن‌ها را به‌طور مفید بیشتر تقسیم یا تجزیه کرد.2- یک میکروسرویس ترکیبی ، یک سرویس دوره ای است که عملکرد یک فعالیت تجاری واحد، مانند انتقال سرمایه را در بر می گیرد. در این مثال، سرویس انتقال وجه یک فرآیند end-to-end را با فراخوانی عملیات چندین میکروسرویس اتمی در یک توالی که فعالیت تجاری را انجام می‌دهد، هماهنگ می‌کند. میکروسرویس‌های مرکب همچنین می‌توانند مدیریت تراکنش (به عنوان مثال commit یا rollback) را در سراسر ارکستراسیون انجام دهند.دولایه میکروسرویس در مثال صنعت بانک در معماری لایه‌ای میکروسرویس‌ها، مسئولیت یکپارچه‌سازی و هماهنگ‌سازی سرویس که قبلا توسط یک ESB انجام می‌شد، اکنون به میکروسرویس‌های مرکب انتقال می‌یابد. ارتباط بین میکروسرویس‌ها مبتنی بر رویداد است که در این صورت منطق فرایند end-to-end بین میکروسرویس‌ها توزیع می‌شود.فازهای مهاجرت از معماری مونولیتک به میکروسرویس:با استخراج از مقالات ، یک رویکرد مرحله‌ای برای مهاجرت از یک معماری یکپارچه به یک معماری میکروسرویس مبتنی بر ابر ارائه می‌شود. مراحل مهاجرت ارائه شده در اینجا بر اساس یک مهاجرت سیستم بانکی اصلی است که در یک محیط آکادمیک تحت پروژه ای به نام SMU tBank انجام شده است، که به موجب آن یک سیستم بانکداری خرده‌فروشی Oracle Flexcube به طور مستقیم با بیش از 200 میکروسرویس جایگزین شد.مراحل مهاجرت به سوی معماری ابری میکروسرویسمراحل مهاجرت شامل موارد زیر است:1- جداسازی یکپارچه: یک رویکرد متداول برای جدا کردن لایه presentation  جلویی از لایه منطق کسب و کار انتهای بانک، معرفی یک لایه نما (Facade) بین رابط کاربر و یکپارچه است، تا برای انتقال نهایی به دور از معماری مونولیتیک آماده شود.2- توسعه میکروسرویس های محلی: مونولیتیک را به میکروسرویسهای جداگانه تجزیه کنید. این امر ممکن است شامل مهندسی معکوس مونولیتیک به منظور شناسایی ریزسرویس‌های کاندید باشد، همانطور که در شکل  بالا نشان داده شده است. شناسایی خدمات هم خسته‌کننده‌ترین مرحله و هم حیاتی‌ترین مرحله در کل فرآیند مهاجرت است. درک سطح بهینه انسجام و اتصال سست برای هر میکروسرویس مهم است.3-  اجرای میکروسرویس های محلی : هنگامی که میکروسرویس ها توسعه یافتند، واحد موردنظر، مورد آزمایش قرار گرفته و به صورت محلی به عنوان مثال در محل مستقر می‌شود.4- استقرار Microservices در Cloud5-  اجرای Microservices در Cloud6- منحل کردن مونولیتیک: مزایای بعد از مهاجرت نیز شامل بهبود میانگین زمان پاسخ از 200 میلی ثانیه به 40 میلی ثانیه در مثال فوق بوده ، همچنین برای قابلیت چابکی و استفاده مجدد و همکاری جهت استفاده از میکروسرویس‌های روی ابر در جاهای دیگر است.چالش های استفاده از میکروسرویس ها:پیچیدگی یک MSA در طول زمان با افزایش تعداد میکروسرویس‌های مستقر شده، زیاد می‌شود بنابراین، ابزارهای نظارت و مدیریت نیاز است. میکروسرویس‌های وابسته به هم بر روی سیستم‌های میزبان مختلف در سراسر شبکه WAN، وجود داشته باشد بنابراین همین امر باعث افزایش ترافیک شبکه خواهد شد.تکنولوژی‌های مکانیسم e-banking در معماری میکروسرویس:این تکنولوژی‌های پرکاربرد بیشتر شامل داکر، loggly و API metrics می‌باشد. همچنین ابزارهایی نظیر کوبرنتیکس نیز در معماری میکروسرویس بسیار  پرکاربرد است.در نهایت نیز به نقش اساسی میکروسرویس در کسب و کار بانکداری دیجیتال پرداخته می‌شود که امکان تحویل مداوم برنامه‌های کاربردی نرم‌افزارهای بزرگ و پیچیده را به سهولت فراهم می‌نماید. به جهت مشکل کارایی و کاهش هزینه‌های عملیاتی هنگام ایجاد سیستم‌هاي پيچيده فناوری اطلاعات بانکی، بر اهمیت معماری سیستم انتخاب شده برای اجرای صحیح الزامات کاربر و برآورده کردن انتظارات آنها در رابطه با انتقال مقیاس، سهولت نگهداری تاکید می‌شود.چرخه عمر استقرار معماری میکروسرویسمونزو ( بانکی است که هدف آن افرادی است که زمان زیادی را با تلفن های هوشمند خود می گذرانند و برای کسانی که دوست دارند کارها را با یک کلیک انجام دهند و نیازی به شعبه ها و دسته چک نمی بینند.) اکنون یک معماری فناوری اطلاعات کاملاً توزیع شده در فضای ابری دارد و بر اساس اصول مرکز دادهActive اجرا می‌شود تا از هرگونه خرابی یا خرابی برنامه حیاتی خود جلوگیری کند. برای مطابقت با الزامات قانونی، به امنیت AWS، رمزگذاری و ویژگی‌های قابل ممیزی متکی است.مونزو بر این باور است که تجربه مشتری بیش از هر چیز دیگری از فناوری پشتیبانی می‌کند و می‌خواهد کنترل کامل معماری فناوری را در دست داشته باشد. ما بر این باوریم که در میان تغییرات شگرفی که در سازمان‌های فناوری اطلاعات امروزی در حال انجام است، مهم‌ترین آنها مشتری مداری است. این تمرکز شدید بر تجربه مشتری با نام تجاری سازمانی - و اینکه چگونه فناوری اطلاعات می‌تواند آن را ارتقا دهد و ارتقا دهد، چشم‌انداز رقابتی را برای کسب‌وکارهای امروزی تغییر می‌دهد.در قلب کسب و کار Monzo، معماری فناوری زیربنایی آن است که باز، آگنوستیک، مقیاس پذیر، ایمن و دارای پلتفرم سوم است. به عنوان محصول جانبی زیرساخت فناوری اطلاعات آماده دیجیتال، برای Monzo آسان بود که فرآیندهای جدیدتری مانند DevOps را برای پیشبرد مزیت رقابتی خود اتخاذ کند.نتیجه‌گیری:دگرگونی دیجیتال مستلزم آن است که سازمان‌ها زیرک باشند و روش‌های نوآوری سریعی را اتخاذ کنند که امکان ارائه خدمات دیجیتال جدید به مشتریان، شرکا و کارمندان را فراهم می‌کند. برای دستیابی به این هدف، سازمان‌ها به دنبال ساخت برنامه‌های کاربردی مبتنی بر ابر انعطاف‌پذیر هستند که به موجب آن با تغییر الزامات و فناوری‌ها، افزودن و به‌روزرسانی خدمات دیجیتال آسان‌تر است. برنامه های کاربردی یکپارچه قدیمی ممکن است از نظر عملیاتی به صورت روزانه قابل قبول باشند، اما این برنامه ها برای ساخت خدمات دیجیتال مناسب نیستند. معماری سنتی یکپارچه و روش‌های توسعه نرم‌افزار همچنان یک مانع برای ایجاد تحول دیجیتال است. به منظور هدایت موثر تحول دیجیتال، سازمان‌ها در حال بررسی یک روش و معماری جدید توسعه نرم‌افزار هستند، «معماری میکروسرویس‌های مبتنی بر ابر»، که به موجب آن راه‌حل‌های فناوری اطلاعات را می‌توان حول قابلیت‌های کسب‌وکار دانه‌ای سازمان‌دهی کرد که می‌تواند به سرعت برای ایجاد تجربه دیجیتالی جدید مبتنی بر ابر جمع‌آوری شود. برنامه های کاربردی. معماری «microservices» سبک و روشی برای توسعه برنامه‌های نرم‌افزاری سریع‌تر با ساخت آن‌ها به‌عنوان مجموعه‌ای از خدمات مستقل، کوچک و ماژولار است. سازمان‌ها در حال حاضر با دو چالش مواجه هستند: نحوه ساخت برنامه های کاربردی جدید با استفاده از معماری میکروسرویس ها و نحوه مهاجرت از یکپارچه به معماری میکروسرویس مبتنی بر ابر. منابع:•Poniszewska-Marańda, A., Vesely, P., Urikova, O., &amp; Ivanochko, I. (2019, September). Building Microservices Architecture for Smart Banking. In International Conference on Intelligent Networking and Collaborative Systems (pp. 534-543). Springer, Cham•Megargel, A., MADJELISI, A., &amp; SHANKARARAMAN, V. (2020). Digital banking accelerator: A Service-Oriented Architecture starter kit for banks. IEEE Software.• Megargel, A., Shankararaman, V., &amp; Walker, D. K. (2020). Migrating from monoliths to cloud-based microservices: A banking industry example. In Software Engineering in the Era of Cloud Computing (pp. 85-108). Springer, Cham.• Mazzara, M., Bucchiarone, A., Dragoni, N., &amp; Rivera, V. (2020). Size matters: Microservices research and applications. In Microservices (pp. 29-42). Springer, Cham.• https://www.qulix.com/about/microservice-architecture-in-digital-banking/• https://d0.awsstatic.com/analyst-reports/EMEA41642116%20Web.pdfhttps://d0.awsstatic.com/analyst-reports/EMEA41642116%20Web.pdf• https://bian.org/wp-content/uploads/2020/07/Coreless-Bank-July-14th-2020.pdfاین مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است.</description>
                <category>zahra khabar</category>
                <author>zahra khabar</author>
                <pubDate>Sat, 12 Feb 2022 23:49:26 +0330</pubDate>
            </item>
                    <item>
                <title>گذری بر API gateway</title>
                <link>https://virgool.io/@zahra.khabar2014/%DA%AF%D8%B0%D8%B1%DB%8C-%D8%A8%D8%B1-api-gateway-hef2bxkesroe</link>
                <description>هنگامی که میکروسرویس‌های خود را توسعه می‌دهید یک مسئله مهم پیش روی شما قرار دارد. چگونه clientهای شما با میکروسرویس‌های شما تعامل خواهند کرد؟ هنگامی که از روش Monolithic برای توسعه نرم‌افزارهای خود استفاده می‌کنید نهایتا یک Endpoint خواهید داشت و در صورت نیاز همین یک Endpoint برای تقسیم بار روی چند سرور نصب می‌شود و به کمک یک Load balancer بار روی این سرورها توزیع می‌شود. اما زمانیکه میکروسرویس توسعه می‌دهید مجموعه‌ای از endpointها خواهید داشت که باید بتوانید با آن‌ها تعامل کنید. در ادامه قصد داریم راجع به تاثیرات تعداد زیادی endpoint داشتن و نحوه حل کردن این مشکل به کمک مفهومی به نام API Gatewaye اشاره نماییم.برای تعامل clientها با میکروسرویس‌ها تنها نقطه ورود برنامه ما یک Gateway است و راه ارتباطی Clientها با microserviceها همین Gateway است. در صورتی که با الگوی facade آشنایی داشته باشید API Gateway عملکردی شبیه به این الگو دارد. در این الگو به جای اینکه برای انجام یک کار با چندین API مختلف تعامل کنیم به سادگی با یک API تعامل می‌کنیم و پیچیدگی‌ها و معماری داخلی ما از چشم استفاده کننده پنهان می‌ماند. صدا زدن چندین سرویس مختلف و ترکیب نتنیجه و بازگرداندن نتیجه نهایی مواردی است که باید داخل API Gateway ما کپسوله شود و استفاده کننده نهایی به سادگی و با صدا زدن یک API نتیجه دلخواه خود را دریافت کند.تمامی درخواست‌های کاربران به API Gateway تحویل داده می شود و در API Gateway مسیریابی به هر سرویس، تعامل با پروتوکل‌های مختلف و ترکیب نتیجه به دست آمده از هر میکروسرویس انجام می‌شود.یکی دیگر از کارهای خوبی که در این زمینه می‌توان انجام داد پیاده سازی Gatewayهای تخصصی برای هر Client است. مسلما تمام داده‌هایی که در صفحه مانیتور نمایش داده می‌شود مناسب نمایش در صفحه یک گوشی موبایل نیست. پس بهتر است به ازای هر Client یک Gatewayتخصصی داشته باشیم که صرفا داده‌های آن Client را فراهم کند. نمایی از یک درگاه API در تعامل با میکروسرویسهامزایا و معایب استفاده از API Gateway:ثل هر کار دیگری استفاده از API Gateway هم مزایا و معایب خاص خود را دارد که ابتدا به مزایای آن می‌پردازیم. بزرگترین مزیت آن از بین بردن معایب روش دسترسی مستقیم است. عدم وابستگی به معماری داخلی سیستم ما باعث می‌شود کار Refactoring ساده‌تر قابل اجرا باشد و دیگر برای ترکیب یا تجزیه سرویس‌های مختلف دغدغه‌های قبل را نداشته باشیم( پیدا کردن جایی تا زمانی که آب‌ها از آسیاب بیوفتد). ارائه API تخصصی برای هر Client باعث افزایش بهره‌وری و بهبود خروجی‌ها و در یک کلام UX بهتر می‌شود. کاهش تعداد درخواست‌های ارسالی از Client هم مورد بعدی است که بهره‌وری کار را بالاتر می‌برد.در کنار این مزایا اما چند ایراد نیز می‌توان به استفاده از این روش گرفت. بزرگترین ایراد این روش اضافه شدن یک ماژول بزرگ به سیستم است که باید همیشه سرحال و آنلاین باشد و در صورتی که عملکرد درستی ارائه نکند کل سیستم با مشکل مواجه خواهد شد. با توجه به اینکه تعامل با هرکدام از میکروسرویس‌ها باید در API Gateway پیاده سازی شود و به ازای هر Clientهم نیاز داریم که پیاده سازی اختصاصی داشته باشیم این احتمال وجود دارد که همین API Gateway به سدی برای تیم توسعه تبدیل شود. زمانی که یک سرویس به روز می‌شود clientها باید منتظر بمانند تا این به روزرسانی در Gateway ارائه شود. به همین دلیل باید توسعه API Gateway ما طوری باشد که به سادگی قابل تغییر و به روزرسانی باشد.با وجود تمامی این مشکلات اما نکات مثبت استفاده از این الگو به قدری زیاد است که نمی‌توان به سادگی از این الگو چشم پوشی کرد.پیاده سازی API Gateway:حال که با مزایا و معایب API Gateway آشنا شدیم به بررسی چند نکته در رابطه با پیاده سازی آن خواهیم پرداخت.1- مسئله بهره‌وری و مقیاس پذیری:احتمالا تعداد انگشت‌شماری شرکت در دنیا مانند Netflix وجود دارند که نیاز دارند روزانه به میلیون‌ها و میلیارد‌ها درخواست پاسخ بدهند و از دسترس خارج شدن آن‌ها حتی برای چند لحظه غیر قابل قبول باشد. با این حال با توجه به شرایطی که بررسی شد،بهره وری بالا و قابلیت مقیاس پذیری از نیاز‌های اولیه هر API Gateway است. ابزارها و زبان‌های مختلفی وجود دارد که می‌تواند این ویژگی‌ها را در اختیار شما قرار دهد که برای مثلا می‌توان به .net core و Node.js اشاره کرد.2- استفاده از مدل برنامه نویسی Reactive:در بعضی موارد می‌توان به سادگی درخواست‌های ورودی را به یک مسیر جدید ارسال کرد و نتیجه را دریافت کرد و به کاربر بازگرداند. در بعضی موارد هم ممکن است یک درخواست ورودی به چندین سرویس ارجاع داده شود و در نهایت نتیجه تمامی این درخواست‌ها با هم ترکیب شود و به کاربر بازگردانده شود. در بعضی موارد هم ممکن است یک درخواست نیاز باشد از چند سرویس استفاده کند اما ترتیب و توالی استفاده از این سرویس‌ها اهمیت داشته باشد. برای مثال زمانی که قرار است به کاربری کالا پیشنهاد داده شود ابتدا لازم است تنظیمات و علائق کاربر از سرویس کاربران دریافت شده و سپس با اطلاعات دریافتی کالاهای پیشنهادی پیدا شده و در اختیار کاربر قرار بگیرد.با توجه به شرایط توضیح داده شده احتمالا استفاده از روش‌های معمول برنامه نویسی خیلی زود ما را وارد جهنمی از کد‌های پیچیده و غیرقابل خواندن و تغییر می‌کند. پس بهتر است به روشی توسعه خود را انجام دهیم که مناسب شرایط باشد. در این شرایط به نظر می‌رسد Reactive Programming راهکار بهینه‌تری نسبت به روش معمول برنامه نویسی باشد.۳- راهکارهای تعامل:در یک API Gateway نیاز است با سرویس‌های مختلف تعامل انجام شود و اصطلاحا Inter-Process Communication انجام شود. سرویس‌های مختلف ممکن است راهکارهای متفاوتی برای تعامل در اختیار ما قرار دهند. ممکن است از روش‌های Async مثل AMQP یا روش‌های sync مثل HTTP و Thrift استفاده شود. به هر حال بدون توجه به روش‌های تعامل API Gateway مورد نظر ما باید بتواند با تمامی این روش‌ها ارتباط برقرار کند.4- یافتن آدرس سرویس‌ها:وقتی Gateway را پیاده سازی می‌کنیم باید به این موضوع فکر کنیم که نیاز داریم آدرس سرویس های مختلف را پیدا کنیم. در روش‌های قدیمی احتمالا نرم افزارهای ما به راحتی روی یک سرور نصب می‌شوند و دانستن آدرس آن‌ها کار سختی نخواهد بود. اما در روش‌های جدید و استفاده از سرویس‌های ابری آدرس دیگر به سادگی و ثابت به دست نمی‌‌آید پس باید قبل از هر مسئله‌ای به یافتن آدرس میکروسرویس‌ها بیاندیشیم. در قسمت‌های بعد به طور مفصل راجع به این مشکل و راه حل آن صحبت خواهیم کرد.5- مدیریت خطاها:مشکل دیگری که هنگام توسعه یک API Gateway باید به آن بیاندیشیم partial failure است. یعنی زمانی که یک درخواست کلی می‌آید و بخشی از درخواست قابل پاسخ گویی نیست. مثلا در سیستم فروشگاه و صفحه جزئیات فروشگاه یکی از سرویس‌ها در دسترس نباشد. مثلا سرویس پیشنهاد کالا در دسترس نباشد. API Gateway باید این قابلیت را داشته باشد که در این شرایط به جای اینکه کل درخواست را لغو کند،داده‌های بخش‌های صحیح را به دست آورد و برای بخش‌های مشکل دار خطا را مدیریت کند. برای مثال داده‌های کش شده داشته باشد که در این شرایط جایگزین داده‌های آنلاین شود. یا مثلا در صورتی که سرویس پیشنهاد کالا قطع باشد 10 کالای پرفروش را بازگرداند.برخی از ابزارهای متن باز مطرح :الف) گزینه های اختصاصی برمبنای سرویس ابرارائه دهندگان ابر دروازه های API را ارائه می دهند که برای ادغام با خدمات خود طراحی شده اند. از جمله این گزینه ها عبارتند از:1- درگاه API آمازون.(AWS)  بخشی از مجموعه ابزارهای پلتفرم ابری AWS، API Gateway یک سرویس کاملاً مدیریت شده است که برای ایجاد، استقرار، مدیریت، نظارت و ایمن APIها، از جمله آنهایی که در پروتکل های REST، HTTP و Web Socket هستند، استفاده می شود. همچنین بر ویژگی‌هایی متمرکز شده است که به سمت انعطاف‌پذیری و مدیریت چرخه عمر تنظیم شده‌اند. البته API Gateway به راحتی با سایر سرویس ها و ابزارهای AWS مانند Cloud Trail برای ورود به سیستم، مدیریت هویت و دسترسی (IAM) برای احراز هویت و Cloud Formation برای ایجاد API ادغام می شود. کاربران می توانند از طریق تعدادی از نقاط دسترسی AWS، مانند کنسول مدیریت، CLI یا SDK به دروازه API Amazon دسترسی داشته باشند.2- درگاه Azure .  سرویس مدیریت Azure API مایکروسافت دارای یک درگاه API به عنوان یکی از سه مؤلفه اصلی آن، در کنار پورتال Azure (رابط اداری) و پورتال توسعه دهنده (رابط توسعه دهنده) است. دروازه Azure تماس‌های HTTP را می‌پذیرد و مسیریابی می‌کند، محدودیت‌های استفاده و نرخ را اعمال می‌کند، پاسخ‌های پشتیبان را ذخیره می‌کند، تماس‌ها را ثبت می‌کند و تأیید را مدیریت می‌کند. ابزار دروازه همچنین با سرویس های Azure مانند Monitor برای تشخیص و برنامه های منطقی برای گردش کار و هماهنگی یکپارچه می شود.3- درگاه API اوراکل.  به عنوان بخشی از خدمات زیرساخت ابری Oracle، درگاه API کاملاً مدیریت شده Oracle،  ارائه دهنده APIهای RESTful  برای سرویس های پشتیبان که از برنامه های بومی ابری پشتیبانی می کنند، می‌باشد.ب) گزینه های منبع باز شخص ثالثچندین گزینه محبوب درگاه API منبع باز عملکرد و مقیاسی را ارائه می دهند که با نیازهای اکثر شرکت ها مطابقت دارد.که برخی از مهمترین آنان عبارتند از:1- درگاه KONG:ابزار Kong Gateway یک دروازه API متن باز و بسیار مقیاس پذیر است که برای میکروسرویس ها و معماری های توزیع شده بهینه شده است. درگاه کنگ را در بالای سرور وب NGINX ساخته و با استفاده از مجوز Apache 2.0 آن را اداره می کند.2- درگاه Tyk .  درگاه Tyk یکی دیگر از گزینه های دروازه منبع باز است که از سه جزء مجزا تشکیل شده است: داشبورد که رابطی برای معیارها و سازماندهی API فراهم می کند. پمپ، که پایداری داده و اتصالات پایگاه داده را فراهم می کند. و Gateway، که پروکسی است که تمام ترافیک را مدیریت می کند. Tyk API Gateway برای اجرا فقط به یک پایگاه داده Redis نیاز دارد و ویژگی های مشابه Kong را ارائه می دهد، از جمله روش های پراکسی ترافیک، کنترل های دسترسی و قابلیت های گزارش.شرکتهای ایرانی فعال در این حوزه:1- ابر درسا در سال ۱۳۹۸ توسط تعدادی از صاحب نظران در حوزه رایانش ابری بنیانگذاری شده و در سال ۱۴۰۰ با نام سیستم خبره درسا در اداره کل ثبت شرکت ها و موسسات غیرتجاری ثبت و با نام تجاری ابر درسا شروع به فعالیت نموده است. ماموریت ابر درسا تبدیل شدن به پلت فرم اول رایانش ابری در منطقه خاورمیانه است. سرویس ApiGateway ابری یک سرویس میزبانی API است. این مجموعه وسیعی از توابع مدیریت چرخه زندگی را برای کمک به ایجاد معماری سیستم API محور ارائه می دهد. توابع مدیریت چرخه زندگی شامل طراحی API، توسعه، آزمایش، انتشار، فروش، O&amp;M  و نظارت، کنترل امنیت و عدم انتشار است. سرویس Api Gateway ابری با استفاده از قابلیت های سازگاری و یکپارچگی قدرتمند خود، API های سیستم های تجاری مختلف را مدیریت می کند و API ها را به صورت متمرکز فراخوانی می کند. و این شرکت یکی از خدماتی که ارائه می‌کند، همین سرویس ابری API Gatewaye می‌باشد.2- شرکت وصل با ارائه دهنده خدمات متنوعی در ارتباط با نرم افزار است. یکی از پلتفرم‌هایی که در همین موضوع مورد بحث API ارائه است، با نام تجاری سورنا است. پلتفرم مدیریت API سورنا توسعه‌دهندگان را قادر می‌سازد تا برنامه‌هایی مرتبط با سامانه‌های داخلی سازمان/سرویس‌دهنده طراحی و پیاده‌سازی نمایند. همچنین APIها در تکنولوژی‌های مختلف نظیر اینترنت اشیا، رایانش ابری و داده‌های حجیم نقشی کلیدی را ایفا می‌نماید. پلتفرم مدیریت API سورنا پایداری، امنیت و پشتیبانی ویژهای ارائه می‌کند تا شرکت‌های طرف ثالث، همکاران، شرکا و حتی توسعه‌دهندگان آزاد بتوانند با آسودگی خیال و اطمینان از آنها استفاده نمایند.جمع بندی:در این مقاله با اشاره ای بر معماری میکروسرویس و سپس روش تعامل کلاینتها در میکروسرویس یعنی درگاه API پرداخته شد . سپس در نهایت به معرفی ابزارهای مهم و مطرح و شرکتهای ایرانی فعال در این حوزه معرفی شد.این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است.منابع:https://searchapparchitecture.techtarget.com/feature/A-feature-rundown-of-6-popular-API-gateway-tools?amp=1http://vasl.ir/platform/api-management/https://dorsacloud.com/products/http://www.sazmanyar.com/https://nikamooz.com/api-gateway/https://cpol.co/https://whatis.techtarget.com/definition/API-gateway-application-programming-interface-gatewayمنابع:https://searchapparchitecture.techtarget.com/feature/A-feature-rundown-of-6-popular-API-gateway-tools?amp=1</description>
                <category>zahra khabar</category>
                <author>zahra khabar</author>
                <pubDate>Fri, 24 Dec 2021 18:25:55 +0330</pubDate>
            </item>
                    <item>
                <title>ضرورت مانیتورینگ یا پایش سیستم، شبکه و...</title>
                <link>https://virgool.io/@zahra.khabar2014/%D8%B6%D8%B1%D9%88%D8%B1%D8%AA-%D9%85%D8%A7%D9%86%DB%8C%D8%AA%D9%88%D8%B1%DB%8C%D9%86%DA%AF-%DB%8C%D8%A7-%D9%BE%D8%A7%DB%8C%D8%B4-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%B4%D8%A8%DA%A9%D9%87-%D9%88-s676ebs5jk9g</link>
                <description>امروزه بسیاری از شرکت ها از فناوری به میزان کم و زیاد استفاده می کنند. در بسیاری از موارد، عملکرد خوب تجهیزات، شبکه ها و سیستم ها کلید ادامه فعالیت در تجارت خواهد بود. همین موضوع اهمیت سیستم مانیتورینگ را به خوبی نشان می دهد.مهم بودن فناوری یعنی ایجاد زیر ساخت برای استقرار تجهیزات و نگه داری از آن ها در مقابل خطاهایی که باعث ایجاد موقعیت های گاه بحرانی می شوند. بنابراین، در هر شرکتی که زیرساخت تکنولوژی در آن مهم است، لازم است عملکرد صحیح آن کنترل شود تا خطای احتمالی باعث ایجاد قطع سرویس به مشتریان و ایجاد ضرر و زیان برای شرکت نشود.مانیتورینگ چیست و تاریخچه مانیتورینگ؟از سال 1950 و با پیشرفت روز به روز صنعت نیاز به کنترل کننده های پیشرفته بوجود آمد. معایب و مشکلات سیستم های کنترلی آن زمان مانند نویز، حجم تابلوهای کنترلی و نیز خطایابی؛ بسیار دشوار و گاها زمان گیر شدن پیدا کردن نقص و رفع آن، بر این شد تا پای ” کنترل کننده های منطقی ” در سال 1960 به صنعت باز شود.این سیستم ها مشکل اول یعنی کاهش نویز و حجم تابلو های کنترل را برطرف نمودند اما هنوز مشکل خطایابی و رفع آن برطرف نشد به علاوه اینکه مشکل بازرسی از وضعیت لحظه ای این سیستم ها و برنامه ریزی مجدد آنها نیز خودنمایی می کرد که در سال 1975 ” سیستم های مانیتورینگ “ ابداع و در کنار سیستمهای کنترلی به کار برده شدند؛ به طوری که امروزه ” مانیتورینگ ” جایگاه ویژه و جدا نشدنی از طراحی سیستم های کنترلی دارند. می توان اینطور گفت، ” مانیتورینگ “ در هرم اتوماسیون ، در نوک قله قرار دارد و این امر به اهمیت سیستمهای مانیتورینگ اشاره می کند. امروزه صنایع بزرگی چون پتروشیمی، تولید انرژی، صنایع شیمیایی، خودروسازی، غذایی و… بدون وجود مانیتورینگ لحظه به لحظه فرآیند قادر به ادامه کار نیستند.روش کار مانیتورینگ چیست؟نرم افزار مانیتورینگ پیامی به سمت دستگاه‌هایی موجود در شبکه ما ارسال می‌کند و اگر جوابیه به صورت پینگ دریافت نماید تصدیق می‌کند که آن دستگاه به درستی در حال فعالیت است. این پیام ها در بازه‌های زمانی مختلفی ارسال می‌شوند تا در دسترس بودن همیشگی دستگاه‌ها مطمعن باشیم.با استفاده از مانیتورینگ ما قادر خواهیم بود از خرابی هایی که در حال وقوع هستند هم آگاه شویم و قبل از به وجود آمدن قطعی مشکل را بر طرف کنیم.سیستم‌های مانیتورینگ دارای قابلیت‌هایی برای رفع خطای اتوماتیک هستند، این دستورات از سمت ادمین شبکه به آن‌ها داده می‌شود تا در هنگام بروز خطا عکس العملی مناسبی را انجام دهند.چگونه یک ابزار مانیتورینگ کار می کند؟سیستم های مانیتورینگ شبکه دستگاه ها و سرورهای شبکه را برای داده های عملکردی با استفاده از پروتکل های استاندارد مانند:استاندارد SNMP، پروتکل ساده مدیریت شبکه یا Simple Network Management Protocol استاندارد WMI یا Windows Machine Interfaceاستاندارد SSH یا Secure Shell برای Unix و سرور Linuxبرخی از سیستم های مانیتورینگ شبکه از زبانهای اسکریپت مانند Powershell برای ایجاد مانیتورهای سفارشی برای سرورهای ویندوز و نمایش داده شده های پشتیبانی می کنند تا مانیتورهای سفارشی برای پایگاه داده ها ایجاد کنند. دو پروتکل مانیتورینگ پرکاربرد SNMP و WMI هستند. آنها هزاران مانیتور را برای ارزیابی سلامت شبکه ها و دستگاه های موجود در آنها  به Admin های  Network  ارائه می دهند.  یک پروتکل استاندارد در سیستم های مانیتورینگ شبکه، SNMP است که تقریباً از هر دستگاه متصل به شبکه، داده ها را جمع آوری می کند ، از جمله: روترها ، سوئیچ ها ، کنترلرهای LAN بی سیم ، نقاط دسترسی بی سیم ، سرورها ، چاپگرها و موارد دیگر. اشیاء پرسیده شده توسط SNMP در یک پایگاه اطلاعات مدیریت یا MIB نگهداری می شوند. MIB تمام اطلاعاتی را که توسط دستگاه مدیریت شده در معرض دید قرار می گیرد تعریف می کند. به عنوان مثال، MIB  برای روتر سیسکو شامل تمام اشیاء تعریف شده توسط سیسکو می باشد که می تواند برای نظارت بر آن روتر مانند استفاده از CPU ، استفاده از حافظه و وضعیت رابط مورد استفاده قرار گیرد. اشیاء موجود در MIB با استفاده از یک سیستم عددی استاندارد طبقه بندی می شوند. هر شیء دارای شناسه شی منحصر به فرد یا OID است. برخی از NMS ها مرورگر MIB را ارائه می دهند. مرورگر MIB به مدیر شبکه اجازه می دهد تا از طریق MIB  حرکت کند تا اشیاء دیگری را که می خواهند بر روی یک دستگاه نظارت کنند پیدا کند.پنج عملکرد اصلی سیستم های مانیتورینگ شبکه چیست؟یک: کشف کردن (Discover)، دو: نقشه (Map)، سه:  مانیتور (Monitor)، چهار:  هشدار (Alert)، پنج : گزارش (Report)پایش در واحدهای مختلفی میتواند صورت گیرد از جمله در نرم افزار، سیستم، شبکه، سخت‌افزار، اینترنت اشیا و...مزایای مانیتورینگ چیست ؟کاهش هزینه‌دسترسی همیشگیحل مشکل به صورت اتوماتیکافزایش عمر دستگاه‌هاکاهش نیروی انسانیامنیت اطلاعات حساس شرکتیآرامش بیشتر در هنگام وقوع خطا و قطعیانواع مانیتورینگ شبکه چیست ؟1- پایش سخت افزار:در پایش سخت افزار عملکرد صحیح آن به صورت منظم و دوره‌ای بررسی می‌گردد. برای مثال در سرور‌ها به بررسی سلامت فن‌ها، Raid، هاردها و … پرداخته می‌شود. 2- پایش سرویس‌ها و نرم افزارها:در این مورد به بررسی صحت عملکرد سرویس‌هایی مانند Active Directory و یا DHCP و حتی به بررسی سرویس بکاپ پرداخته می‌شود. یکی دیگر از انواع این پایش بررسی صحت عملکرد و در دسترس بودن پایگاه داده است. در دسترس نبودن پایگاه داده باعث بلا استفاده شدن بیشتر نرم افزار هایی می‌گردد که از آن استفاده می‌کنند.به عنوان مثال می‌توان به مانیتورینگ وب سایت اشاره کرد. امروزه وب سایت‌ها به بخش‌های کلیدی برخی سازمان‌ها تبدیل شده اند پس در دسترس بودن همیشگی آن‌ها بسیار حائز اهمیت است. با مانتیور کردن وب سایت می‌توان پهنای باند، تعداد کاربران فعال و … را بررسی کرد و در صورت نیاز منابع را افزایش داد.3- پایش پهنای باند:یکی از موارد مهم که در مانیتورینگ باید بدانید این است که مانیتورینگ ترافیک شبکه چیست. با مشخص شدن الگوی مصرف پهنای باند شبکه می‌توان در زمان اوج مصرف، محدودیت‌هایی را بر روی پورت ها مشخص کرد تا از بروز قطعی و کند شدن سایر سرویس ها جلوگیری کرد.ویژگی های یک سیستم پایش برخی از ابزارهای مهم و مطرح در بحث مانیتورینگ:1- ابزار زبیکسزبیکس (Zabbix) یک نرم افزار متن باز برای پایش شبکه‌ها و برنامه‌هاست که با به کارگیری پارامترهای متعدد تمامی اطلاعات مربوط به این شبکه‌ها و برنامه‌ها را برای شما جمع آوری می‌کند. این سیستم می‌تواند در هر لحظه به طور همزمان به پایش هزاران سرور و تجهیزات شبکه بپردازد. در این مقاله در مورد سیستم مانیتورینگ Zabbix و ویژگی‌ها و امکانات آن صحبت خواهیم کرد.کمپانی Zabbix در سال ۲۰۰۵ و توسط الکسی ولادیشو (Alexei Vladishev) تأسیس گردید. او ایده راه حل مانیتورینگ خود را که پیشتر به صورت نرم افزاری درون سازمانی در سال ۱۹۹۸ ارائه داده بود، به عنوان جزوی از اهداف راهبری این شرکت دنبال نمود و طولی نکشید که توانست در این زمینه به موفقیت‌های چشمگیری دست پیدا کند. اولین نسخه آزمایشی این نرم افزار در سال ۲۰۰۱ منتشر شد و نخستین بار به طور رسمی در سال ۲۰۰۴ از آن بهره برداری گردید.زبیکس تا کنون بیش از ۱۳ نسخه بروزرسانی شده را به بازار عرضه کرده است که آخرین مورد آن به تاریخ ۲۰ می ۲۰۲۱ تحت عنوان ZABBIX5.4   بازمی‌گردد. متن باز بودن و عدم نیاز به لایسنس از جمله ویژگی‌های منحصر به فرد نرم افزار مانیتورینگ Zabbix به شمار می‌آیند. شما می‌توانید هر تعداد دستگاه را با استفاده از این نرم افزار به طور کاملاً رایگان تحت پایش قرار دهید. همچنین متن باز بودن زبیکس این قابلیت را به شما می‌دهد که خودتان کدهای این نرم افزار را مطابق با نیازهایتان تغییر دهید و به طور سفارشی به مانیتورینگ سیستم‌ها و شبکه‌ها بپردازیدنمایی از ابزار مانیتورینگ زبیکس2- ابزار SolarWinds Network Performance Monitor: نرم‌افزار رایگانی است که از برای گردآوری بسته‌های داده از پروتکل SNMP و برای پایش شبکه از پروتکل WMI بهره می‌برد.3- ابزار SolarWinds Server &amp; Application Manager:این سیستم مانیتورینگ منابع و عملکرد برنامه‌های موجود روی سرورها را ردیابی می‌کند. شما می‌توانید این نرم‌افزار را بر روی سیستم‌عامل‌های ویندوز یا لینوکس نصب کنید.این ابزار یکی از بهترین ابزارهای مانیتورینگ برنامه‌ها و سرورها است که به نظارت دقیق سیستم درون شبکه نیز می‌پردازد. این نرم افزار به صورت مداوم به‌روز‌رسانی می‌شود و جزء نرم‌افزاری رایگان است، به همین علت، استفاده از آن به همه توصیه می‌شود. از جمله ویژگی‌های مثبت این ابزار می‌توان به موارد ذیل اشاره داشت:چندین سیستم را می‌تواند در یک زمان نظارت و مدیریت کند.قبل از بروز هرگونه مشکلی هشدارهای پیشگیرانه برای کاربران خود ارسال می‌کند.علت مشکلات به وجود آمده را تشخیص می‌دهد به همین مشکلات را می توان به سرعت برطرف کرد..نقشه هوشمند که دید متنوعی از شبکه را در اختیار کاربران قرار می‌دهد.نصب این نرم‌افزار مانیتورینگ بسیار آسان است و در مدت زمان ۳۰ دقیقه می‌توان آن را نصب کرد.نمایی از نرم افزاز سولار سرور شرکتهای ایرانی ارائه‌دهنده یا فعال در حوزه مانیتورینگ:1- شرکت سدید آفرین:شرکت سدید آفرین به عنوان شرکت فعال در زمینه ارائه راه حلهای جامع امنیت اطلاعات و نیز سیستمهای Open Source با تکیه بر دانش و توان متخصصان خود توانسته است نقش مهمی در پیشرفت و ارتقا سطوح امنیتی بسیاری از سازمانها و شرکتها داشته باشد. طرحهای گسترده شرکت سدید آفرین در زمینه امنیت اطلاعات و نیز توانمندی این شرکت در ارائه راه حلهای Open Source، در نهایت منجر به دریافت اولین نمایندگی سیستم مانیتورینگ ZABBIX در خاور میانه گردید که این امر نقطه عطفی در زمینه رشد و گسترش استفاده از سیستم های مانیتورینگ حرفه ای در ایران محسوب میشود.2- شرکت داناپرداز:محصولات دانا پرداز در دو دسته گروه بندی می‌شوند.محصولات مدیریت خدمات فناوری اطلاعات:مخاطب اصلی این گروه از محصولات، واحد فناوری اطلاعات شرکت‌ها و سازمان‌ها است. این محصولات به به تیم IT سازمان در مانیتورینگ شبکه و زیرساخت و همچنین مدیریت خدمات فناوری اطلاعات بر اساس چارچوب ITIL کمک می‌کند. محصولات این گروه عبارتند از:نرم افزار ITSM دانا پرونرم افزار مانیتورینگ شبکه بینانرم افزار مدیریت اکتیو دایرکتوری برناسنسورهای مانیتورینگ شرایط محیطی مرکز دادهمحصولات مدیریت کسب و کار:این گروه از محصولات به شرکت ها و سازمان ها کمک می کند تا روش ارتباط با مشتریان خود را متحول کنند و تیم فروش، بازاریابی و خدمات خود را به ابزارهای ضروری برای موفقیت مجهز کنند. امکانات پیشرفته و قابلیت های اتوماسیون دانا موجب کاهش هزینه ها و رقابت پذیری بالای کسب و کارها می شود. محصولات این گروه عبارتند از:نرم افزار CRM دانانرم افزار پشتیبانی مشتریان دانا دسکنرم افزار چت آنلاین دانا3- شرکت سپهر انفورماتیک درخشان:این شرکت در سال 1372 مسیر خود را در راستای ارائه خدمات در حوزه کامپیوتر، انفورماتیک و فناوری های نوین آغاز کرد و در این مسیر توانست دانشی فوق تخصصی در زمینه سیستم‌های صدور کارت‌های شناسایی، اعتباری، هوشمند و تردد کسب کند.این شرکت همچنین در حوزه مانیتورینگ ارائه دهنده خدمات مشاوره ای به شرکتهای دیگر نیز می‌باشد.4- شرکت شبکه گستر کایر:شرکت کاير فعالیت خود را  در سال 1392 تحت عنوان شرکت شبکه گستر کاير با هدف ارائه خدمات نرم افزاري و پشتيباني توسط گروهي از جوانان تحصيل کرده و کار آزموده آغاز نمود. درهمان ابتدا با تکيه بردانش تيم فني شرکت وارائه خدمات بر روي سرورهاي لينوکس و تجارب قبلي توانست به دانش بالايي در نصب و راه اندازي انواع سرويس هاي شبکه بر روي اين خانواده از سيستم عامل قدرتمند، دست يابد. محصولات نرم افزاري توليد شده توسط اين شرکت، در بيش از ده ها خدمات دهنده ي اينترنت و مراکز خصوصي نصب و راه اندازي گرديده و تجربه و دانش بدست آمده در اين زمينه به تيم فني شرکت اين اجازه را داده تا به ارائه خدمات در سطح اينترپرايز بپردازد.شرکت شبکه گستر کاير با هدف گام برداشتن در مرزهاي جديدترين فناوريهاي اطلاعات تاسيس گشته و از آخرين ابزارها و فناوري‏ها، در جهت اجراي پروژه‏هـاي خود استفاده مي‏نمايد. از جمله سياست هاي کلان شرکت، فعاليت در زمينه فن آوري اطلاعات شامل:ارايه راهكار حرفه اي در زمينـه طراحي، اجرا وخطايابي توپولوژيهاي اينترپرايز شبکه و مراکزداده.ارايه راهكار حرفه اي در زمينـه تامين امنيت تجهيزات موجود در لايه هاي مختلف شبکه وداده هاي حساس.ارايه راهكار حرفه اي در زمينـه مديريت و راه اندازی پست الکترونیک - میل سرورارايه راهكار حرفه اي در زمينـه پايش مستمر شبکه هاي اينترپرايز و راه اندازي مراکز پيشرفته(NOC).ارايه راهكار حرفه اي در زمينـه خدمات پيام رسانـي و سامانه هاي پيشرفته Email.ارايه راهكار حرفه اي در زمينـه پياده سازي ساختارهاي اينترپرايز سرويس DNS.ارائه راهکار حرفه ای در زمینه مانیتورینگ کارمندان و پایش فعالیت های سازمانیارائه راهکار حرفه ای در زمینه پیاده سازی ITIL در سازمان ها و نرم افزار های Helpdesk و Ticketingاين شركت خود را ملزم به ارائه خدمات و محصولات در بالاترين سطح کيفي دانسته و انجام کار محوله به بهترين شکل و رضايت‏مندي مشتريان و در يک کلام مشتري‏مداري، مهم‏ترين اولويت آنان است.در این مقاله سعی شد تا کلیاتی از مفهوم مانیتورینگ ، معرفی برخی از ابزارهای متن باز رایگان و برخی از شرکتهای ایرانی اشاره شود. لازم به ذکر است که برخی از این شرکتها ، سیستم پایش بومی نیز طراحی کرده‌اند که با مراجعه به صفحه سایت هرکدام می‌توان اطلاعات بیشتری را در این مورد کسب کرد.این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است.منابع:https://sepehranformatic.com/monitoring-post/https://avashnet.com/whats-network-monitoring/https://www.danapardaz.net/https://falnic.com/blog/network-monitoring.htmlhttps://www.kayer.co.ir/https://sadidafarin.ir/https://qualatech.ir/monitoring/https://network.tosinso.com/https://qualatech.ir/monitoring/</description>
                <category>zahra khabar</category>
                <author>zahra khabar</author>
                <pubDate>Fri, 24 Dec 2021 17:40:39 +0330</pubDate>
            </item>
                    <item>
                <title>تحویل مداوم(Continuous Delivery)</title>
                <link>https://virgool.io/@zahra.khabar2014/%D8%AA%D8%AD%D9%88%DB%8C%D9%84-%D9%85%D8%AF%D8%A7%D9%88%D9%85continuous-delivery-%DB%8C%DA%A9%DB%8C-%D8%A7%D8%B2-%D8%A7%D8%B5%D9%88%D9%84-%D8%AF%D9%88%D8%A7%D9%BE%D8%B3-fdmiqngdx9wu</link>
                <description>مفهوم Continuous Delivery یا به اختصار CD که معادلی همچون «تحویل مداوم» می‌توان برایش در نظر گرفت به رویکردی در صنعت توسعهٔ نرم‌افزار گفته می‌شود که طی آن تیم مهندسی همواره این آمادگی را دارا است تا آخرین نسخه‌ از نرم‌افزار را در هر زمانی منتشر نماید که این نسخه می‌تواند شامل قابلیت‌های جدید، تغییرات پیکربندی، رفع باگ‌ها و ... باشد.در حقیقت، CD این تضمین را ایجاد می‌کند که مشتری در هر لحظه‌ای که اراده کند نسخهٔ جدید نرم‌افزار باید قابل‌انتشار بوده و تیم مهندسی از این بابت نباید هیچ‌گونه واهمه‌ای داشته باشد و این مهم زمانی عملی می‌گردد که همیشه آمادگی این را داشته باشیم تا نسخه‌ای به‌روز، بدون باگ و پایدار از نرم‌افزار را در اختیار مشتری قرار دهیم حتی اگر تیم توسعهٔ نرم‌افزار شامل ده‌ها و یا صدها دولوپر از اقصی نقاط جهان باشد (به خاطر داشته باشیم که در اینجا منظور از مشتری هم می‌تواند یک شرکت دیگر و هم یک دپارتمان دیگر داخل شرکت نرم‌افزاری باشد.)شکل1- چرخه تحویل مداوم یا CDتفاوت Continuous Delivery با Continuous Deployment؟لازم به یادآوری است که سرواژهٔ CD مخفف واژگان  Continuous Deployment به معنی «انتشار مداوم» نیز می‌باشد که طی آن نسخه‌های پایدار و بدون باگ نرم‌افزار به صورت خودکار روی سرور دیپلوی (ارسال) می‌شوند و نیاز به توضیح نیست که در چنین شرایطی ممکن است در طول روز چندین نسخهٔ جدید از نرم‌افزار روی سرور دیپلوی گردد اما در «تحول مداوم» گرچه نرم‌افزار کماکان آمادهٔ دیپلوی است، اما انتشار یا عدم انتشار آن بستگی به نظر و ارادهٔ تیم توسعهٔ نرم‌افزار دارد (نیاز به توضیح نیست برای آنکه قادر گردیم «انتشار مداوم» انجام دهیم، می‌باید ابتدا پروسهٔ «تحویل مداوم» را با موفقیت پشت سر بگذاریم.)چه ارتباطی مابین Continuous Delivery و Continuous Integration وجود دارد؟مفهوم Continuous Integration به تست، بیلد، ادغام و یکپارچه‌سازی سورس‌کد در محیط توسعهٔ نرم‌افزار مرتبط است به طوری که طی آن دائماً نسخه‌های جدید نرم‌افزار با ریپازیتوری اصلی‌اش ادغام می‌گردد به طوری که در عین حال این تضمین نیز ایجاد می‌گردد که در کدهای جدید هیچ‌گونه مشکلی وجود نداشته و بخش‌های جدیدی که به سورس‌کد اضافه شده‌اند با الباقی ماژول‌ها سازگار هستند اما این در حالی است که Continuous Delivery گام بعدی محسوب می‌شود به این معنی که پس از آپدیت شدن سورس‌کد، تیم مهندسی با بررسی‌های بیشتر این اطمینان را می‌دهد که نرم‌افزار در هر لحظه‌ای که مشتری اراده کند قابل‌انتشار است.مزایای تحویل مداوم:یکی از نقاط قوت کلیدی CD آن است که فرآیند دریافت فیدبک (بازخورد) از کاربران را تسریع می‌نماید. در واقع، زمانی که ما با سرعت بیشتری فیچرهای جدید را در معرض استفادهٔ کاربران نرم‌افزار یا اپلیکیشن قرار می‌دهیم، به همان میزان هم سریع‌تر می‌توانیم از ایشان فیدبک بگیریم و در صورت نیاز دست به اِعمال تغییرات بزنیم. به طور کلی، دیگر مزیت‌های CD عبارتند از:- انتشار نرم‌افزار با حداقل ریسک: نیاز به توضیح نیست که هدف از «تحویل مداوم» آن است که انتشار نسخه‌های جدید از نرم‌افزار یا اپلیکیشن را با حداقل استرس و ریسک در هر لحظه‌ای بنا به صلاحدید مشتری انجام داد.- به‌روزرسانی سریع‌تر: با آنچه تاکنون گفته شد، نیاز به توضیح نیست که CD تیم‌های مهندسی را قادر می‌سازد تا همواره در سریع‌ترین زمان ممکن کاربران/مشتریان خود را با نسخه‌های جدید نرم‌افزار خوشحال نمایند.- کیفیت بیشتر: زمانی که به طور مستر آپدیت‌های کوچکی در نرم‌افزار صورت می‌گیرد، این تضمین ایجاد می‌گردد که همواره نسخه‌ٔ فعلی نسبت به نسخه‌ٔ قبلی بهبود یافته است و همین مسئله منجر بدین خواهد شد تا کیفیت نرم‌افزار ارتقاء یابد.- فشار روانی کمتر روی دولوپرها: وقتی CD پروسهٔ انتشار نسخه‌های جدید نرم‌افزار را تسهیل می‌کند این بدان معنا است که افراد دخیل در این پروسه همچون برنامه‌نویسان و نیروهای عملیاتی یا به بیان بهتر دوآپس فشار کمتری را متحمل خواهند شد و همین مسئله باعث رضایت شغلی بیشتر ایشان خواهد شد و بالتبع به جای مسائل جانبی و حاشیه‌ای، ایشان می‌توانند روی موضوعات کلیدی‌تری همچون اِعمال الگوریتم‌های بهتر، تجربهٔ کاربری خوب‌تر و چیزهایی از این دست تمرکز کنند.هدف Continuous Delivery؟هدف CD این است که که انتشار و تحویل نرم افزار را به خصوص برای سیستم های توزیع شده در مقیاس بسیار بزرگ و محیط های عملیاتی پیچیده به یک فرایند روتین، ساده و قابل پیش بینی تبدیل کند. رسیدن به این هدف تنها در صورتی امکان پذیر است که کدهای نرم افزار همیشه در وضعیت آماده برای انتشار باشند، حتی در شرایطی که یک تیم با هزاران توسعه دهنده به طور روزانه در حال تغییر و به روزرسانی کد ها و نرم افزار هستند. به این ترتیب روش سنتی فازهای ادغام (Integration)، تست، پیکربندی و Hardening جای خود را به روش های اتوماتیک می دهد. همچنین زمان آماده شدن برای انتشار، زمان مهاجرت به محیطهای دیگر (Time to Remediate) و زمان برطرف کردن رخداد در محیط عملیات را کاهش (Time To Mitigate or time to remediate production incidents) می دهد.شکل 2- فواید CI/CDپایپلاین یا خط لوله استقرار :تحویل پیوسته به وسیله خط لوله‌ها فعال و پیاده‌ می‌شود. خط لوله‌ها سه هدف دارند: قابل مشاهده بودن، بازخورد، استقرار پیوسته. قابل مشاهده بودن: تمام مراحل استقرار از جمله ساخت، استقرار، تست و انتشار به منظور همکاری، برای اعضای تیم قابل مشاهده است.بازخورد: اعضای تیم به محض اتفاق افتادن خطا آنها را مطالعه می‌کنند و تلاش می‌کنند که هرچه سریعتر مشکل را حل کنند.استقرار پیوسته: با استفاده از یک فرايند کاملا خودکار، هر نسخه از محصول در هر محیط به صورت خودکار نصب شود.شکل 3- خط لوله استقرار CDابزارهای مطرح و متن باز (Open Source) در سال 2021 برای CD:در ادامه به معرفی برخی از ابزارهای متن باز ، پرداخته می‌شود.1- ابزار GOCD:ابزار GoCD ابزاری اپن‌سورس تحت لیسانس آپاچی است که نقش یک سرور Continuous Delivery را بازی می‌کند به طوری که با محیط‌هایی  همچون AWS ،Docker و Kubernetes به خوبی سازگار است.طبق ادعای سایت رسمی این ابزار اپن‌سورس، یکی از شاخصه‌های GoCD آن است که به منظور دریافت هرچه سریع‌تر بازخورد می‌توان وُرک‌فلوهای پیچیده‌ای با آن ایجاد کرد و این در حالی است که این کار بدون نیاز به نصب هیچ‌گونه پلاگین خاصی امکان‌پذیر است مضاف بر اینکه GoCD این امکان را فراهم می‌آورد تا با رصد کردن تک‌تک تغییرات، از کامیت‌ها گرفته تا پروسهٔ دیپلوی، مشکلات را ریشه‌یابی کرد که این کار از طریق ابزارهای مقایسه‌ای که در این ابزار گنجانده شده‌اند امکان‌پذیر است.لازم به یادآوری است که مجموعه‌ای از پلاگین‌های کاربردی نیز توسعه داده شده که برخی رایگان و برخی نیز پریمیوم هستند که به منظور ارتقاء قابلیت‌های GoCD می‌توانند مورد استفاده قرار گیرند.2- ابزار Jenkins X:ابزار Jenkins X نسخه به روز شده Jenkins شناخته شده است و  بر اساس ویژگی های موجود Jenkins با قابلیت های متناسب با گردش کار Kubernetes و Docker ایجاد شده است. همچنین  شامل ویژگی هایی برای خطوط لوله از پیش ساخته شده، پشتیبانی یکپارچه GitOps، محیط های پیش نمایش خودکار تولید شده و ادغام بازخورد است.  ابزار Jenkins X با Tekton، Prow، Helm، Knative و Skaffold ادغام می شود و البته می‌توانید از آن در دستگاه‌های لینوکس، مک یا ویندوز استفاده کنید.3- ابزار Argo CD:این ابزار Argo CD یک ابزار و پروژه منبع باز  CI/CD برای توسعه Kubernetes است. از مخازن Git برای ذخیره وضعیت برنامه‌های Kubernetes استفاده می‌کند، برنامه‌ها را نظارت می‌کند و می‌تواند خوشه‌ها را به حالت دلخواه مجدداً همگام‌سازی کند، همانطور که در پیکربندی git نشان داده شده است.این رویکرد نوآورانه همچنین به شما امکان می‌دهد چندین حالت دلخواه یک برنامه Kubernetes را با استفاده از شاخه‌ها، تگ‌ها یا با پین کردن نسخه‌های مانیفست با استفاده از commit Git ذخیره کنید. این یک محیط انعطاف پذیر برای مدیریت پیکربندی های Kubernetes در طول فرآیند توسعه فراهم می کند.معرفی شرکت‌های ایرانی مطرح در حوزه تحویل مداوم:1- یکی از شرکت‌های ایرانی فعال شرکت داده کاوان تصمیم یار به شماره ثبت: 576694 و شناسه ملی: 14009978163 در زمینه ارائه ، مشاوره و آموزش خدمات نرم افزاری به سازمان‌های دولتی و خصوصی فعالیت می‌نماید. شرکت داده کاوان تصمیم یار خدمات مختلف نرم افزاری ارائه می‌دهد که یکی از آنها “کوالاتک” نام دارد که “تست اتوماتیک نرم افزار و تضمین کیفیت” می‌باشد. تیم کوالاتک متشکل از کارشناسان ارشد دانشگاه صنعتی شریف است که کیفیت دغدغه آن‌هاست. در شرکت کوالاتک با بهره‌گیری از متخصصان ارشد حوزه QA و انجام ده‌ها پروژه مختلف آماده کمک به سازمان‌های مختلف برای راه اندازی فرایند CI/CD نیز مشاوره تخصصی انجام می‌پذیرد.2- واحد مشاوره شرکت “مشاوره مدیریت رایزن سامانه گستر” با تکیه بر دانش فنی و تجربیات کارشناسان و مشاوران خود و همچنین تجربه های سازمانی کسب شده در پروژه های بزرگ و کوچک خود، آماده ارائه سبد متنوعی از خدمات در حوزه مشاوره و استقرار استانداردها، چارچوبها و بهروشها در سازمانها و شرکتها در ابعاد مختلف میباشد. در قالب 5 گروه خدمتی این شرکت انجام وظیفه میکند که یکی از آنان خدمات در حوزه مدیریت امنیت و استمرار خدمات فناوری اطلاعات می‌باشد.جمع بندی:رویکرد Continuous Delivery توانایی اعمال تغییرات در محیط عملیات در هر لحظه با روشی سریع و مطمئن و به طور کاملا پایدار می باشد. این تغییرات شامل همه انواع آن از جمله تغییرات پیکربندی در نرم افزار، زیرساخت و پلتفرم، افرودن ویژگی های جدید، رفع باگ و خطا ها می شود. در ادامه نیز به معرفی برخی از شرکتهای ایرانی فعال در این حوزه و همچنین چندابزار مطرح معرفی شد.این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است.منابع:https://devops.com/7-popular-open-source-ci-cd-tools/amp/http://hidevops.com/143/continuous-delivery-%DA%86%DB%8C%D8%B3%D8%AA/https://fa.m.wikipedia.org/wiki/%D8%AA%D8%AD%D9%88%DB%8C%D9%84_%D9%BE%DB%8C%D9%88%D8%B3%D8%AA%D9%87https://sokanacademy.com/glossary/continuous-deliveryhttps://www.softwaretestinghelp.com/best-continuous-delivery-tools/amp/https://qualatech.ir/ci-cd/https://www.lordlikely.com/news/7-15/Chen, Lianping (2017). &quot;Continuous Delivery: Overcoming adoption challenges&quot;. Journal of Systems and Software. 128: 72–86/ doi:10.1016/j.jss.2017.02.013http://rayzansamaneh.com/</description>
                <category>zahra khabar</category>
                <author>zahra khabar</author>
                <pubDate>Fri, 24 Dec 2021 16:44:27 +0330</pubDate>
            </item>
                    <item>
                <title>سيستم مديريت فرايند كسب‌وكار يا همان BPMS چيست؟</title>
                <link>https://virgool.io/@zahra.khabar2014/%D8%B3%D9%8A%D8%B3%D8%AA%D9%85-%D9%85%D8%AF%D9%8A%D8%B1%D9%8A%D8%AA-%D9%81%D8%B1%D8%A7%D9%8A%D9%86%D8%AF-%D9%83%D8%B3%D8%A8-%D9%88%D9%83%D8%A7%D8%B1-%D9%8A%D8%A7-%D9%87%D9%85%D8%A7%D9%86-bpms-%DA%86%D9%8A%D8%B3%D8%AA-ctn1g3bdvezu</link>
                <description>نرم افزار مدیریت فرآیندهای کاری یا همان BPMS راهکاری است که فرآیندهای سنتی سازمان را با استفاده از ابزارهای مختلف به فرآیندی الکترونیکی تبدیل می‌کند. این فناوری جدید به سرعت جایگاه تاثیرگذار خود را در دنیای نرم‌افزار و بخصوص مدیریت اطلاعات پیدا کرد. به کمک سیستم مدیریت فرآیندهای کاری به سادگی و با سرعت، روال کاری سازمان را با استفاده از زبان گرافیکی ترسیم، و بدون نیاز به دانش برنامه نویسی آن را به نرم افزار تحت وب تبدیل می کنید.راهکار BPMS کمک می کند تا ایده‌های مدیریتی خود را به راحتی به نرم افزار تبدیل کنید. به طور کلی، نرم‌افزار مديريت فرايند كسب‌وكار (BPMS) راه حلی ارائه می کند تا بدون داشتن تیم تولید نرم افزار و صرف هزینه های فراوان برای آن، ایده های نرم افزاری خود را در سازمان پیاده کنید.BPMS ابزاری برای پیاده سازی روشهای مدیریت جهت بهبود فرایندهای تجاری سازمان از طریق شناسایی ، مدلسازی ، اتوماسیون ، تجزیه و تحلیل و اندازه گیری عملکرد است و از تمام چرخه عمر فرایندهای کسب و کار(BPM) پشتیبانی میکند .شکل1- پشتیبانی BPMS از تمامی چرخه عمر فرایندهای کسب و کار سازمانچرخه حیات BPMS:هر فرآیند جهت بهبود کیفیت و رسیدن به وضع مطلوب پیاده سازی می شودو از این رو ممکن ایت این روال بارها در هر یک از بخش های آن تکرار شود تا نتیجه مورد نظر حاصل شود. از این رو چرخه حیات مدیریت فرآیندهای سازمانی به طور تکرار شونده است و در هر تکرار ارزش افزوده ای به فرآیند و منطق کاری افزوده می شود.مدلسازی و طراحی : در این مرحله منطق و روال فرآیند مورد نظر مدل می شود. اساس BPMS بر این مبناست که در ابتدا لازم نیست فرآیند بهیمنه و در بهترین حالت ممکن باشد. بلکه می توان با مدل کردن وضعیت موجود و در ادامه با استفاده از مکانیزم های BPMS و اصول جهانی حاکم بر فرآیند (BPMN 2.0) فرآیند را بهبود بخشید. پس از مدلسازی و رفع معایب و اشکالات احتمالی مرحله طراحی فرآیند آغاز می شود که با توجه به محیط گرافیکی نرم افزار BPMS  آرین و استفاده از اشکال ( Shape)  و قوانین ساده فلوچارتی و کاربری آسان ، می توان بدون درگیر شدن در اصول و قواعد خاص مدل آماده شده را پیاده سازی کرد.توسعه و پیاده سازی :  بعد از شناخت و مدلسازی فرآیند اصلی و زیر فرآیندهای احتمالی لازم است فرآیندهای مربوطه را به همراه قوانین کسب و کار پیاده سازی کرده و در سازمان مستقر ساخت و کلیه سیستم های قدیمی و موروثی سازمان را از طریق BPMS  به یکدیگر متصل کرد.اجرا و مدیریت :  پس  از استقرار و راه اندازی، کاربران بخشهای مختلف سازمان می توانند فرآیندها را اجرا و بررسی نمایند. در حین اجرای فرآیندهای گروه های کاربری سازمان با توجه به نقش سازمانی آن ها در سیستم ، از فرآیندها استفاده خواهند کرد.تحلیل و بهینه سازی : پس از راه اندازی مدیران و مسئولان مربوطه با بررسی فرآیندها و با استفاده از پارامترهای بدست آمده می توانند نسبت به تغییر ، بهبود و یا ویرایش روال فرآیندها در جهت بهبود و بهره وری، کارایی و سرعت فرآیندها تصمیم گیری کنند.برخی از مشکلات سیستم های سنتی سازمان ها:عدم تطابق با نیازهای سازمان و یا ازبین رفتن این تطابق به مرور زمانعدم توانایی تغییر مداوم رفتارهای سیستماتیک سازمانهزینه های بالای تغییرات در سازمانزمان بر بودن تغییرات و هماهنگی اعضا و ارباب رجوع ( مشتریان)جزیره ای بودن سیستم هاعدم امکان مدیریت و تصمیم گیری جامع به دلیل عدم تجمع منایعوقوع افزونگی اطلاعات و هدر رفت منابعوابستگی سازمان به ابزارهای خاص جهت جمع آوری و تحلیل و استفاده از اطلاعات و...عدم انطباق و انعطاف پذیری سیستم ها با تغییرات سازمان ها و برنامه ها و اهداف سازمانهزینه های سرسام آور جهت نگهداری ، توسعه و پشتیبانی سیتم های موجودعدم تمایل مدیران به ادامه تولید و تغییرات در سیستم هادرگیری با مشکلاتدر رابطه با تولید کننده گان و توسعه دهندگان جهت انجام درخواست های سازماننارضایتی ارباب رجوع( مشتری نهایی ) به دلیل کیفیت پایین خدماتعدم امکان بررسی و تحلیل کلی سازمان به دلیل نبود سیستم و اطلاعات یکپارچهعدم امکان گزارش گیری کلی سازمانشکل2- ظهور BPMS هامزایای استفاده از BPMS:مزیت اصلی BPMS این است که کاربران این فرصت را دارند تا از طریق ابزارهای ساده و شهودی فعالانه در بهبود فرایندهای تجاری شرکت کنند. همه این مزایا به دلیل سه مولفه احتمالی امکان پذیر است: ابزار ساخت فرآیند ، اجرای آنها (سیستم عامل) و نظارت (کتابخانه فرآیند). در ادامه به برخی موارد دیگر به اختصار اشاره خواهد شد که شامل:افزایش بهره وریصرفه جویی در زمان ، هزینه و حجم سربار فرآیندهااعمال سریع و آسان تغییرات در سازمان ها و فرآیندها با کمترین هزینهیکپارچه سازی سیستم های سازمانافزایش رضایت مندی ارباب رجوع(مشتریان)بهبود تعاملات بین بخش های مختلف سازمان و حذف پیچیدگی های آنامکان شناسایی گلوگاه ها و رفع موانع  و اصلاح فرآیندهاتیه گزارش های تحلیلی، آماری و مدیریتیاجرای اتوماتیک برخی وظایف تکراری و تسریع در انجام امورهشدارها  (Alarms) و واکنش های اتوماتیک  Triggersکاهش زمان ارائه خدمت و افزایش کیفیت خدمات ارائه شدهتسریع قوانین و هماهنگی سریع تر با محیط کاریکنترل پایش و تصمیم گیری صحیح تر بر اساس نتایج سیستمحفظ و نگهداری و محافظت از محیط زیست (کاهش مصرف مواد اولیه ، کاغذ و...)کاهش دفعات مراجعه ارباب رجوع یا مشتری به سازمانکاهش و حذف ارتباط فرآیند ها به افرادبرخی از مهمترین شاخص های انتخاب BPMS:۱- پشتیبانی از استانداردهای BPMN و DMN و CMMN:خیلی مهم است که نرم افزار BPMS منتخب ما تمام نوتیشن های استانداردهای مذکور پوشش دهد. مثلا event base gateway یا event base sub process را پوشش میدهد؟ آیا امکان ترسیم DRD و پشتیبانی از ماتریس تصمیم را دارد؟ و ….۲- قابلیت اتصال به ربات های نرم افزاری:تکنولوژهای نسل آینده ربات های نرم افزاری یا RPA هستند که به BPMSها متصل شده و می تواند برای شما به عنوان یک نیروی کار مجازی کارهای سیستمی را به صورت خودکار و بدون خطا و خستگی انجام دهند. برای پشتیبانی از RPA نرم افزار BPMS باید BOT TASK را پشتیبانی کند.۳- عدم وابستگی به شرکت ارائه دهنده نرم افزار BPMS:اگر نرم افزار BPMS شما تنها توسط یک شرکت ارائه شده و نمی توان افراد یا شرکتهای دیگری برای دریافت خدمات پیدا نمودید پس ما به آن شرکت وابسته هستیم  که این بسیار برای سازمان و کسب و کار خطرناک می تواند باشد !!! انحصار منجر به ایجاد قدرت می شود و شرکت صاحب انحصار می تواند شما مدیریت کند در صورتیکه انتظار می رود جریان برعکس باشد.۴- کارپسندی نرم افزار BPMS:کار کردن با BPMS خصوصا در محیط ساخت فرایند باید بسیار کاربرپسند بوده و با سرعت بالایی بتوان فرایندهای سازمان را از طریق نرم افزار BPMS اتوماسیون نمود.۵- اعتبار BPMS:طبیعتا اگر نرم افزار BPMS مشتریان بین المللی داشته باشد می توان به آن اعتماد بیشتری نمود. البته نرم افزار BPMS باید تجربه موفق پیاده سازی داخلی نیز داشته باشد.***برای ارزیابی و انتخاب شما می توانید از Gartner نیز کمک بگیرید. این موسسه از معتبرترین موسساتی است که انواع نرم افزارهای سازمانی از جمله BPMSها را ارزیابی و رتبه بندی می‌کند. کافی است نتایج ارزیابی آن را چک کنید و مشاهده کنید کدام یک از BPMSهای لیست گارتنر در ایران در دسترس و قابل استفاده هستند.***شکل 3- ویژگی های نرم افزارهای BPMS6 گزینه از بهترین نرم افزار های BPM در سال 2021:در اینجا اطلاعاتی اساسی در مورد برخی از بهترین نرم افزارهای BPM در سال 2021 خدمت شما ارائه می کنیم.1- ابزار Kissflow:یک نرم افزار BPM بدون کد است که دقیقا یک محل کار دیجیتال را ایجاد می کند. این امر به ساده سازی و خودکار سازی همه روش های کار، پروژه ها، پرونده ها و همکاری کمک می کند. برخی از بهترین ویژگی های آن شامل داشبورد کاربرپسند ، الگوهای گزارش قابل تنظیم و یک طراح فرم پیشرفته است.این برنامه قیمت های متفاوت، با قیمت ۱۹۹ دلار در ماه را برای مشاغل مختلف با طیف گسترده ای از ویژگی ها و پایگاه کاربری آغاز می کند.2- ابزار Processmaker:یک راه حل BPM و گردش کار با low-code است که به شما امکان می دهد فرآیند های تجاری را طراحی، خودکار و مستقر کنید. برای شرکتهایی که به نرم افزار BPM آماده تولید در مقیاس سازمانی نیاز دارند، ایده آل است. آنها سه برنامه قیمت گذاری دارند که از ۱۵۰۰ دلار درماه شروع می شود .3- ابزار Zoho Creator:یک برنامه توسعه با low-code است که به کاربران امکان می دهد فرم های سفارشی ایجاد کنند، گردش کار طراحی کنند و صفحاتی آموزنده ایجاد کنند. این بهترین گزینه برای شرکت هایی است که به دنبال راه حل های DIY هستند.قیمت گذاری برای هر کاربر در هر ماه از ۱۰ دلار تا ۱۵ دلار است.4- ابزار Nintex:این ابزار تحول دیجیتال را برای SMB ها و بنگاه ها به واقعیت تبدیل می کند. این یک گزینه ابری را به همراه میزبانی سنتی خود ارائه داده است. برای کار در کنار ابزاری مانند Officce365 ، Sharepoint و Project Server طراحی شده است. پلتفرم Nintex از قابلیت هایی برای گردش کار پیشرفته، فرم های مدرن، نقشه برداری و مدیریت فرآیندها، برنامه های تلفن همراه و RPA برخوردار است .مجموعه Nintex محصولات مختلفی دارد که قیمت آنها از 850 دلار در ماه آغاز می شود.5- ابزار Bizagi:این ابزار راه حل های اتوماسیون را برای شرکت ها در قالب سه محصول ارائه می دهد :Bizagi ModelerBizagi StudioBizagi Automationبیزگی، گزینه های میزبانی ابری و همچنین پیش فرض را ارائه می دهد.بیزگی، قیمت گذاری را در وب سایت خود نمایش نمی دهد و از شما می خواهد که برای اطلاع از قیمت محصولات با آنها تماس بگیرید.6- ابزار Bpm’online:ابزار Bpm’online یک نرم افزار، BPM برای شرکت ها است. یا می تواند به عنوان محصولات جداگانه bpm’online marketing ، bpm’online sales و bpm’ online service خریداری شود.یا به عنوان یک گزینه بسته با bpm’ online studio خریداری شود.هم میزبانی پیشفرض و هم میزبانی مبتنی بر ابر را ارئه می دهد. ابزار Bpm’online studio دارای یک نسخه رایگان و نسخه سازمانی به مبلغ 25 دلار برای هر کاربر در ماه است.با این حال در ایران ابزارهای زیر برای BPMS مورد استفاده قرار میگیرد :۱-  نرم افزار Activiti BPMS۲-  نرم افزار Cummunda BPMS۳-  نرم افزار Bonita BPMS۴- نرم افزار ProcessMaker۵- نرم افزار Bizagi۶- نرم افزار Oracle BPMدر اینجا سعی داریم لیستی از شرکت ها و راهکارهای BPMS آنها در ایران ارائه کنیم. این شرکت ها به چند دسته تقسیم می شوند :۱٫ (نماینده) شرکت هایی که نماینده راهکارهای بین المللی هستند۲٫ (بومی سازی) شرکت هایی که با استفاده از راهکارهای بین المللی و در بعضی موارد راهکارهای متن باز، راهکارهای بومی را ایجاد نموده اند۳٫ (داخلی) شرکت هایی که با استفاده از دانش فنی و توان داخلی خود اقدام به ایجاد BPMS نموده اند.شرکت‌های ایرانی فعال در حوزه BPMS:آرمان دنیای فنآوری اطلاعات تتیس ww.tetis.irآیکن www.ICAN.irایران راینه www.iranrayaneh.comباسا www.basa.irبرسا نوین رای www.barsasoft.comبهسا www.behsaa.comپاسارگاد www.mnp.co.irپارسه رایانه www.parsehcomputer.comپرنیان پردازش پارس www.parnianportal.comپگاه آفتاب www.pegaheaftab.comتاران taraan.comتذرو افزار www.tazarv.comدانش رایان آروین www.daneshrayan.irدپنا www.depna.comرایورز www.rayvarz.comروزنه www.rozaneco.comرونین www.ronin-soft.comژابیز پرداز www.jabizparda.comسورن سیستم شریف www.ecportal.irشبکه فردا www.netrise.irشماران سیستم www.shomaran.comفرابرد شبکه www.farabord.comفرا تحلیلگران ورجاوند www.varjavandco.comفراگستر www.faragostar.netکوثر سامانه پرداز www.kits.irمای دیتا www.mydata-co.comمدار گسترش فنآوری اطلاعات www.itorbit.netجمع بندی:در این مقاله به تعریف BPMS، لزوم استفاده از آنان و در نهایت به ابزارهای مطرح در سال 2021 و شرکتهای ایرانی فعال در این حوزه با بیان نام شرکت و سایت آن به اختصار اشاره شد .این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است.منابع:https://bpmtraining.net/https://www.faragostar.net/https://ebpm.ir/https://samatoos.ir/articles/free-bpms-software/http://arianbpms.blogfa.com/tag/2https://slideplayer.com/slide/14509203/ ارائه اقای مهندس امیر مهجوریان در اولین کنفرانس تخصصی نظام اداری الکترونیکی</description>
                <category>zahra khabar</category>
                <author>zahra khabar</author>
                <pubDate>Fri, 24 Dec 2021 14:09:33 +0330</pubDate>
            </item>
                    <item>
                <title>گذرگاه سرویس سازمانی /ESB</title>
                <link>https://virgool.io/@zahra.khabar2014/%DA%AF%D8%B0%D8%B1%DA%AF%D8%A7%D9%87-%D8%B3%D8%B1%D9%88%DB%8C%D8%B3-%D8%B3%D8%A7%D8%B2%D9%85%D8%A7%D9%86%DB%8C-esb-cthtlh1vnz91</link>
                <description>گذرگاه سرویس سازمانی (به انگلیسی Enterprise Service Bus)، راهکاریست برای یکپارچه سازی نرم‌افزارهای مورد استفاده در سازمان‌ها که بصورت جزیره‌ای مورد استفاده قرار گرفته است. برای تبیین مفهوم فوق لازم است تا با مفهوم گذرگاه (bus) آشنایی یافت. گذرگاه (bus) مفهومیست که تاریخچه آن به معماری سخت افزارهای رایانه بر‌می‌گردد. بعد از تبیین و استفاده از این مفهوم بود که صنعت سخت‌افزار توانست ابزارهای مختلفی را از قبیل کارت‌های صوتی و گرافیکی، مودم، شبکه و سایر ابزارها را تنها با استفاده از استانداردی مشخص و واحد، به رایانه وصل نماید. تنها کافیست که ابزار مورد نظر را در شیار مشخص شده قرار داد. بعد از قرارگیری ابزار مورد نظر در محل تعیین شده، توسط مادربورد، شناسایی شده و مورد استفاده قرار می‌گیرد.با پیشرفت تکنولوژی و پیشرفت نرم‌افزارها، سازمان‌ها برای افزایش کارایی و کاهش زمان انجام فعالیت‌ها، از نرم افزارهای کاربردی متعددی استفاده می‌نمایند. در بخش‌های مختلف سازمان با توجه به نیازمندی همان بخش، نرم افزاری مورد استفاده قرار می‌گیرد. این نرم افزارها بصورت جزیره‌ای در هر سازمانی وجود دارد.یکی از مهمترین دلایلی که هر سازمانی نیازمند استفاده از ESB در زیرساخت‌های خود می‌باشد، رقابتی‌تر شدن بازار کسب و کار و نیازمندی سازمان‌ها به رشد و بهبود چابکی در سازمان است. ESB به عنوان یک نرم افزار مبتنی بر معماری سرویس‌گرا، توانسته است تا نرم‌افزارهای مختلفی که در سازمان‌ها وجود دارد، یکپارچه نماید.قبل از بوجود آمدن مفهوم ESB، سازمان‌ها برای یکپارچه سازی نرم‌افزارهای خود از ارتباط نقطه به نقطه (point to point) استفاده میکردند. از جمله معایب این روش میتوان به کنترل سخت و قابلیت توسعه پایین، اشاره نمود.تصویر 1: نمایی از یک ESBچرا باید از گذرگاه سرویس سازمانی استفاده کرد؟افزایش چابکی سازمان، کاهش زمان ورود به بازار، جلوگیری از بروز خطاها، صرفه جویی‌های مالی و زمانی از رایج‌ترین دلایلی است که شرکت‌ها، گذرگاه خدمات سازمانی را به عنوان ستون فقرات زیرساخت IT خود در نظر می گیرند و تمایل دارند که ESB را در سازمان خود پیاده سازی کنند. علاوه بر این، گذرگاه خدمات سازمانی راهی را برای استفاده از سیستم‌های موجود یا قدیمی شما ارائه می‌دهد تا بدون نیاز به کد نویسی و دغدغه‌های دیگر بتوانید سیستم‌های قدیمی خود را وارد چرخه جدید بنماید.سطوح ESB:گذرگاه خدمات سازمانی را در سه سطح می‌توان دسته‌بندی کرد .(تصویر 2)تصویر 2: سطوح ESBسطح اول ابزارهایی هستند که صرفا برای یکپارچه‌سازی نرم‌افزارهای سازمان استفاده می‌شوند و اصطلاحاً به آنها Integration Framework می‌گویند.سطح دوم ESBها، سطح گسترده‌تری از Integration Frameworkها هستند که به آن «گذرگاه سرویس سازمان» یا همان ESB گفته می‌شود.سطح سوم ESBها نیز که به آن Integration Suite می‌گویند، ترکیبی از ESBها و BPMSها هستند که علاوه بر یکپارچه‌سازی نرم‌افزارهای سازمان، قابلیت یکپارچه کردن فرآیندهای سازمان را نیز با نرم‌افزارها فراهم می‌کند بطوریکه در سازمان، می‌توان یک یکپارچگی کامل ایجاد نمود.وظایف اصلی ESB عبارتند از:مسیریابی پیام‌ها بین سرویس‌هامانیتور و کنترل مسیریابی تبادل پیام بین سرویس‌هاحل اختلاف بین اجزای سرویس ارتباطیکنترل استقرار و نسخه بندی سرویس‌هاحکمروایی در استفاده از سرویسهای جایگزینخدمات تبادل سرویس مانند رسیدگی به رویدادها، تبدیل و نگاشت داده‌ها، صف بندی و ترتیب بندی پیامها و رویدادها، مدیریت امنیت یااستثناء، تبدیل پروتکلها و حاکم کردن کیفیت مناسب بر سرویسهای ارتباطیاصول اصلی ادغام گذرگاه خدمات سازمانیبیایید با هم به نحوه‌ی معماری گذرگاه خدمات سازمانی نگاهی بیندازیم:– ترکیب : در ارکستراسیون چندین مولفه کوچک موجود در یک سرویس بزرگ که اهمیت بالایی دارد با هم ترکیب می‌شود. این کار را می‌توان برای دستیابی به تک تک خدمات مناسب و ارتقاء استفاده مجدد آنها و مدیریت مولفه‌های اساسی انجام داد.– تبدیل:تبدیل داده‌ها بین قالب‌های داده‌های متعارف و قالب‌های داده‌های خاص مورد نیاز هر اتصال دهنده گذرگاه سرویس سازمانی انجام می‌شود. برای نمونه می‌تواند تبدیل بین قالب‌هایCSV ، Cobol copybook یا EDI به SOAP / XML یا JSON باشد. فرمت های داده‌های Canonical می‌توانند نیازهای مرتبط با اجرای گسترده‌ی گذرگاه خدمات سازمانی را در جایی که تعداد زیادی مصرف کننده و ارائه دهنده وجود دارد ، با قالب‌ها و تعاریف داده‌های خاص خود، بسیار ساده کنند.– انتقال:انتقال پیام‌ها در پروتکل ارتباطی بین چندین قالب (مانند HTTP ، JMS، JDBC).– میانجی‌گری:فراهم کردن چندین رابط به منظور:الف) پشتیبانی از نسخه‌های مختلف سرویس برای سازگاری معکوس یا استفاده‌های دیگرب) امکان ایجاد چندین کانال برای پیاده‌سازی مولفه‌های اصلی یکسان.این نیاز دوم ممکن است شامل ارائه چندین رابط برای همان مولفه‌ها، یک رابط قدیمی و یک رابط سازگار با استاندارد (SOAP / XML) باشد.– سازگاری غیر عملکردی:برای یک ابتکار معمولی گذرگاه خدمات سازمانی می‌تواند شامل سازگاری در مورد نحوه‌ی اعمال و اجرای سیاست‌های امنیتی و نظارتی باشد. علاوه بر این، اهداف مقیاس پذیری و در دسترس بودن را می توان با استفاده از چندین نمونه گذرگاه خدمات سازمانی برای تأمین افزایش توان عملیاتی (مقیاس پذیری) و از بین بردن نقاط شکست (SPOF) ، که هدف اصلی سیستم‌های حیاتی سازمان است، به دست آورد.معرفی محصولات مطرح در سال‌های اخیر در زمینه ESB  :1- ابزار Mule ESB توليد کننده: شرکت MuleSoft مجوز: پروانه اختصاصي براي نسخه‌هاي اختصاصي زبان برنامه‌سازي: Java سيستم عامل: مستقل از سيستم‌عامل2- ابزار WSO2 Enterprise Integrator توليد کننده: شرکت WSO2 مجوز: Apache Software License Version 2.0 زبان برنامه‌سازي: Java سيستم عامل: مستقل از سيستم‌عامل3-  ابزار JBoss ESB توليد کننده: شرکت Red Hat مجوز: GNU Lesser General Public License زبان برنامه‌سازي: Java سيستم عامل: مستقل از سيستم‌عامل4- ابزار OpenESB توليد کننده: انجمن OpenESB مجوز: CDDL زبان برنامه‌سازي: Java سيستم عامل: مستقل از سيستم‌عامل5- ابزار Petals ESB توليد کننده: کنسرسيوم OW2 مجوز: LGPL 2.0 زبان برنامه‌سازي: Java سيستم عامل: مستقل از سيستم‌عامل6- ابزار ServiceMix توليد کننده: شرکت Apache Software Foundation مجوز: Apache License 2.0 زبان برنامه‌سازي: Java سيستم عامل: مستقل از سيستم‌عامل7- ابزار Microsoft BizTalk Server توليد کننده: شرکت Microsoft مجوز: پروانه اختصاصي سيستم عامل: Windows8- ابزار IBM Integration Bus توليد کننده: شرکت IBM مجوز: پروانه اختصاصي زبان برنامه‌سازي: Java، ESQL ،C++ ،Visual Basic .NET سيستم عامل: مستقل از سيستم‌عامل برای چه شرکت‌هایی ESB مناسب است ؟سازمان‌ها برای ارائه خدمات خود به صورت آنلاین از وب سرویس استفاده می‌کنند. وقتی تعداد وب سرویس‌ها کم است یا اهمیت آنها زیاد نیست بروز نقص فنی مشکل زیادی بوجود نمی‌آورد اما مشکلات اصلی زمانی بوجود می‌آید کهتعداد وب سرویس‌ها زیاد می شود مثل بانک‌ها | موسسات مالیتعداد زیر مجموعه های داخلی سازمان زیاد می‌شود مثل وزارت نفت | وزارت ارتباطاتوب سرویس اهمیت استراتژیک دارد مثل بورس | سازمان هواپیمایی کشوری | ستاد انتخاباتسازمان از طریق وب سرویس کسب درآمد فراوان لحظه ای دارد مثل همراه اول | ایرانسلارتباط مستمر وب سرویس بین منبع و سرویس گیرنده مهم می باشد مثل دفتر مرکزی فروشگاه های زنجیره ای با فروشگاه‌ها | گمرکمعرفی برخی از شرکت‌های ارائه دهنده خدمات ESB:1- شرکت دانش بنیان طراحی و معماری کاریز سیستم پویا:اين شركت كه در مركز رشد دانشگاه شهيد بهشتی تشکیل شده است، که خدمات متنوعی در ارتباط با معماری سرویس‌گرا  انجام می‌شود. پکیج خدمات یکپارچه‌سازی سیستم‌ها و بانک‌های اطلاعاتی مرتبط با فناوری ESB :طراحی تفصیلی معماری گذرگاه سرویس سازمانتدوين استانداردهاي يکپارچه­ سازي براي اقدامات آتی سازمانتامین سرور و راه اندازی زیرساخت  یکپارچه سازی (esb)انجام يکپارچه سازي بين سامانه ­ها مطابق متدولوژي ارائه شده (تعدادی سرویس پایلوت)آموزش و انتقال دانش به سازمان ها برای پیاده سازی سایر سرویس ها2- شرکت داده‌پرداز پویای شریف پلتفرم یکپارچه‌سازی سازمانی داده پرداز وظیفه مدیریت و تجمیع اطلاعات سرویس‌های یک سازمان را برعهده دارد. این پلتفرم نرم‌افزاری مرکزی برای پردازش و ارائه اطلاعات در مجموعه‌های بزرگ می‌باشد.یکی از مهم‌ترین دلایلی که استفاده از پلتفرم ESB داده‌پرداز به سازمان‌ها و یا شرکت‌های بزرگ در بستر فناوری اطلاعات توصیه می‌شود، توسعه پذیری و چابکی این پلتفرم است. ویژگی‌های دیگر این پلتفرم شامل دارای زیرساخت توسعه‌پذیر، ایجاد ارتباط و بهینه‌سازی سیستم‌ها، افزایش بهره‌وری سامانه‌ها، امکان اتصال به وب‌سرويس‌ها و پايگاه‌های داده، پشتیبانی از تعداد بالای کاربر همزمان و کاهش هزینه‌های توسعه و پشتیبانی نرم افزارهاست.3- شرکت وصل یکی از پلتفرم‌های ارائه داده شده توسط این شرکت با نام اسپارا، در ارتباط با  یکپارچه سازی سرویس های سازمانی، امکان قیمت گذاری سرویس‌ها بر اساس سازمان و گزارشات دقیق و کاربردی است.اسپارا امکان تعریف و مدیریت APIها رو به سادگی برای شما فراهم میکنه، سرعت شما در ارائه خدمات رو بیشتر میکند و سازمان شما را برای رهبری بازار آماده می‌کند.4- شرکت داده کاوان تصمیم یاراین شرکت توسط جمعی از نخبگان دانشگاه صنعتی شریف تاسیس شده است و یکی از فعالیت های تخصصی در شرکت دانش بنیان فوق استفاده از پلتفرم پلتکو جهت پیاده‌سازی گذرگاه سرویس سازمانی می‌باشد. پلتکو “پلتفرم یکپارچه سازی و مدیریت وب سرویس” می‌باشد.این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است.منابع:https://dadehpardaz.com/esbhttps://karizsystem.ir/http://vasl.ir/platform/enterprise-service-bus/https://fa.wikipedia.org/wiki/%DA%AF%D8%B0%D8%B1%DA%AF%D8%A7%D9%87_%D8%B3%D8%B1%D9%88%DB%8C%D8%B3_%D8%B3%D8%A7%D8%B2%D9%85%D8%A7%D9%86%DB%8Chttps://www.faragostar.net/enterprise-service-bus-introduce/https://platco.ir/services/integration-web-services/enterprise-service-bus/https://medium.com/coderscorner/100-open-source-esb-429471fd0577</description>
                <category>zahra khabar</category>
                <author>zahra khabar</author>
                <pubDate>Tue, 14 Dec 2021 09:55:34 +0330</pubDate>
            </item>
                    <item>
                <title>روش C4، یکی از روش‌های مستندسازی معماری نرم‌افزار</title>
                <link>https://virgool.io/@zahra.khabar2014/%D8%B1%D9%88%D8%B4-c4-%DB%8C%DA%A9%DB%8C-%D8%A7%D8%B2-%D8%B1%D9%88%D8%B4-%D9%87%D8%A7%DB%8C-%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-s11fnexndswd</link>
                <description>     یکی از جدی ترین چالش های پیش رو در زمینه توسعه نرم افزار، طراحی و مستندسازی معماری نرم افزار می‌باشد.  مستنداتی که در برگیرنده همه جنبه‌ها و پیچیدگی‌های ذاتی معماري نرم افزار به شكلی يكپارچه باشد، از قابلیت فهم پایینی برخوردار بوده و ذینفعان بهره چندانی از آن نخواهند برد. برای فائق آمدن بر این مشکل، مستندسازی معماری نرم‌افزار به کمک مجموعه‌ای از دیدهای معماری انجام می‌پذیرد.        منظور از مستندسازی معماری نرم‌افزار تولید مجموعه‌ای است از محصول‌هایی که یک معماری را به روشی که برای ذینفعان قابل فهم بوده و نشان دهد که معماری دغدغه‌هایشان را تامین می‌نماید، مستند کند. یکی از این روش‌ها جهت مستندسازی C4 است که در ادامه به  جهت آشنایی، توضیح کلی در ارتباط با آن پرداخته خواهد شد.تاریخچه:  آقای سایمون براون  یک مشاور مستقل متخصص در حوزه معماری نرم‌افزار و نویسنده  کتاب «معماری نرم‌افزار برای توسعه‌دهندگان» هم هست که مدل C4 توسط ایشون بین سال‌های 2006 تا 2011 بر روی ریشه‌های زبان مدل‌سازی واحد (UML) و مدل نمای معماری 4+1 ایجاد شد.مدل‌سازی C4 چیست؟     نمودارهای معماری نرم‌افزار راهی فوق‌العاده برای برقراری ارتباط با نحوه برنامه‌ریزی شما برای ایجاد یک سیستم نرم‌افزاری (طراحی اولیه) یا نحوه عملکرد یک سیستم نرم‌افزاری موجود ( براساس مستندات گذشته‌، اشتراک دانش و یادگیری) هستند. با این حال، به احتمال زیاد اکثر نمودارهای معماری نرم‌افزاری که دیده‌اید،  ترکیبی بهم ریخته‌ از باکس‌ها و خطوط هستند. نمودارهای مبهم معماری نرم افزار منجر به ایجاد سوء تفاهم می‌شود که می تواند سرعت یک تیم خوب را کاهش دهد. در صنعت واقعاً باید در تلاش برای ایجاد نمودارهای معماری نرم افزاری بهتر باشیم. امروزه تیم‌ها تمایل دارند به نمودارهای موردی تکیه کنند که روی تخته سفید (شکل1) ترسیم می‌کنند یا با استفاده از ابزارهای نمودارسازی همه‌منظوره همچون  Microsoft Visio کنار هم قرار دهند. روش C4 پس از سال‌ها تلاش توسط خالق آن برای همین منظور ابداع شد. C4  برگرفته از حروف اول 4 کلمه زیر است: ContextContainer Component Code شکل 1 - نمودارهای مبهم معماری بر روی تخته سفید     بنابراین مدل C4 مجموعه ای از نمودارها است که زمینه، کانتینرها، اجزا و کد یک نرم افزار را نشان می‌دهد. سلسله مراتب این نمودارها به مخاطبان مختلف اجازه می‌دهد تا معماری نرم افزار را در سطح جزئیات مورد نیاز خود درک کنند.    بنابراین مدل C4 مجموعه ای از نمودارها است که زمینه، کانتینرها، اجزا و کد یک نرم افزار را نشان می‌دهد. سلسله مراتب این نمودارها به مخاطبان مختلف اجازه می‌دهد تا معماری نرم افزار را در سطح جزئیات مورد نیاز خود  درک کنند. توانند چندین سیستم را توصیف کنند، برخلاف نمودارهای معماری AWS خاص، نمودارهای معماری GCP یا نمودارهای معماری Azure. سطوح مدل C4:    چهار نوع مدل C4 وجود دارد که هر کدام برای مخاطبان متفاوتی است و دارای سطح متفاوتی از جزئیات است. یک سیستم نرم افزاری از یک یا چند کانتینر که در اصطلاح میزبان کد یا داده است، و برای اینکه سیستم کار کند باید در حال اجرا باشد. هر کانتینر یک چیز یا محیط زمان اجرا به طور جداگانه قابل استقرار/اجرا است  مانند برنامه های کاربردی وب، برنامه های موبایل، برنامه های کاربردی دسکتاپ، پایگاه های داده، سیستم‌های فایل و غیره تشکیل شده است که هر کدام شامل یک یا چند جزء/مولفه (گروه بندی عملکردهای مرتبط که در پشت یک رابط کاملاً تعریف شده محصور شده است. همه اجزای داخل یک کانتینر معمولاً در یک فضای پردازش یکسان اجرا می شوند.) است که به نوبه خود توسط یک یا چند عنصر کد پیاده سازی می شوند. به عنوان مثال کلاس ها، رابط ها، اشیاء، توابع و غیره.عکس 2- کلیاتی که مدل c4 دربرمیگیرد در یک نگاه کلی.سطح1 : نمودار زمینه سیستم    نمودار زمینه سیستم، درواقع اصطلاحا یک big picture از کلیات سیستم شما را در بردارد. کلی ترین توصیفی هستند که سیستم شما چه کاری انجام می دهد، چه کسی از آن استفاده خواهد کرد و با چه سیستم‌های دیگری تعامل خواهد داشت. یک نمودار زمینه به شما کمک می کند تا محدوده پروژه خود را توصیف کنید و به شما کمک می کند تا مشخص کنید کاربر چه کسی است و چه مشکلی را می‌خواهید حل کنید. عکس 3 - شمایی از نمودار زمینه در یک سیستم بانکداری اینترنتی.
سطح 2: نمودار کانتینر     نمودار کانتینر اولین گام را برای توصیف سیستم نرم‌افزاری برداشته و API ها، برنامه‌های کاربردی، پایگاه‌های داده و میکروسرویس‌هایی را که سیستم از آنها استفاده خواهد کرد نشان می‌دهد. هر یک از این برنامه‌ها یا خدمات با یک کانتینر یا ظرف نمایش داده می‌شوند و تعاملات بین آنها در سطح بالایی نشان داده می‌شود. مخاطبان مورد نظر  برای این نمودار؛ افراد فنی هم در داخل تیم توسعه و هم خارج از تیم توسعه (به عنوان مثال، عملیات/پشتیبانی) می‌باشد.عکس4- شمایی از نمودار کانتینر سطح 3: نمودار مولفه      یک گام عمیق‌تر از نمودار کانتینر، نمودار مؤلفه گروه‌های کد را در یک کانتینر به تفصیل شرح می‌دهد.   این مؤلفه ها انتزاعی از پایگاه کد شما را نشان می دهند.  این نوع نمودار با نمودار مؤلفه‌های UML قابل مقایسه است، اما برای ایجاد نمودار معماری نرم‌افزار از مجموعه‌ای از «قوانین» کمتر دقیق‌تر پیروی می‌کند. مخاطب مورد نظر برای این نمودار؛ معماران و توسعه دهندگان نرم افزار می‌باشد.عکس5- شمایی از نمودار مولفهسطح 4: کد       آخرین سطح به جزئیات زیادی نیاز دارد تا نشان دهد چگونه کد یک جزء یا مولفه واحد در واقع پیاده سازی می‌شود. برای انجام این کار، می‌خواهید یک نمودار کلاس UML یا نمودار رابطه موجودیت  entity relationship بسازید که مؤلفه را توصیف می‌کند.  جزئیات بیشتری در مورد طراحی عناصر معماری ارائه می دهد که می توانند به کد نگاشت شوند. مدل C4 در این سطح به نمادهای موجود مانند زبان مدل سازی یکپارچه (UML)،نمودارهای رابطه موجودیت (ERD) یا نمودارهای تولید شده توسط محیط های توسعه یکپارچه (IDE) متکی است.شکل 6 -  نمایی از سطح  کد از همان سیستم بانکداری اینترنتیخلاصه:      در این نوشته سعی بر آن بود تا با مفهوم مستندسازی و جایگاه مدل c4 پرداخته شود، کلیاتی از آن بیان شد و اهمیت و مزیت و سطوح چهارگانه این مدل نیز بیان گردید. همچنین یک نمایی از هر سطح با مثال سیستم بانکداری اینترنتی آورده شد.  مدل C4 معماری بصری مشترک و معماری تکاملی را در چارچوب تیم‌های چابک و اجایل تسهیل می‌کند.مراجع:https://civilica.com/inv/20455320/6321f6deeb0077155bb1cd5a9146249f/https://www.gliffy.com/blog/c4-modelhttps://learning-notes.mistermicheels.com/architecture-design/visualizing-architecture/c4-model/https://www.infoq.com/articles/C4-architecture-model/https://en.wikipedia.org/wiki/C4_modelhttps://civilica.com/doc/455181/این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است.مدل C4 معماری بصری مشترک و معماری تکاملی را در چارچوب تیم‌های چابک تسهیل می‌کند×</description>
                <category>zahra khabar</category>
                <author>zahra khabar</author>
                <pubDate>Wed, 17 Nov 2021 18:33:51 +0330</pubDate>
            </item>
            </channel>
</rss>