گذرگاه سرويس سازماني (ESB)

گذرگاه سرويس سازماني چيست؟يک گذرگاه سرويس سازماني (enterprise service bus) يک الگوی معماری و پلتفرم نرم‌افزاری است که برای توزیع کار بین مؤلفه‌های متصل برنامه مورد استفاده قرار می‌گیرد و از طریق آن یک مؤلفه نرم‌افزاری مرکزی، ادغام بین برنامه‌ها را انجام می‌دهد. انتقال مدل داده را انجام می‌دهد و اتصال را مدیریت می‌کند و به صورت بالقوه ترکیب چندین درخواست را مدیریت می‌کند. یک سیستم ارتباطی بین برنامه‌های نرم‌افزاری در حال تعامل در یک معماری سرویس‌گرا و الگویی برای معماری سرویس‌گرا پیاده‌سازی می‌کند و برای طراحی شبکه مورد قبول در شبکه جهانی وب نیز مورد استفاده قرار می‌گیرد. برای ایجاد یکنواختی در جابه‌جایی کار طراحی شده است. برنامه‌هایی با قابلیت اتصال به ESB و تصدیق پیام‌ها براساس ساختار ساده و قوانین و سیاست‌های کسب و کار را ارائه می‌دهد. EBS در نرم‌افزاری که بین برنامه‌های تجاری کار می‌کند و ارتباط بین آن‌ها را فعال می‌کند، پیاده‌سازی می‌شود. باید بتواند تمام تماس‌های مستقیم با برنامه‌ها را روی گذرگاه جایگذاری کند، به طوری که تمام ارتباطات از طریق ESB انجام شود. برای رسیدن به این هدف ESB باید عملکرد ارائه شده توسط برنامه‌های بخش خودش را به صورت معنادار کپسوله کند. مدل پیام مجموعه‌ای استاندارد از پیام‌ها را تعریف می‌کند که ESB ارسال و دریافت می‌کند.عملکرد اصلی آن این هست که به عنوان گذرگاه پیام عمل می‌کند که بعد از دریافت پیام‌ها، آن‌ها را بین مؤلفه‌ها یا برنامه‌های مناسب بر اساس یک سیاست هدایت می‌کند. اغلب چون برنامه بدون مدل پیام یکسان تکامل یافته است، ESB پیام را به قالبی تبدیل می‌کند که برنامه بتواند آن را تفسیر کند. یک آداپتور نرم‌افزاری مانند یک آداپتور فیزیکی وظیفه انجام این تغییرات را دارد. کاربرد اصلی آن یکپارچه‌سازی برنامه‌های سازمانی ناهمگن و چشم‌انداز سرویس پیچیده است. یک معماری نرم‌افزاری و ابزاری است که در محاسبات توزیع شده و یکپارچه سازی مؤلفه‌ها مورد استفاده قرار می‌گیرد و نوع خاصی از مدل کلی‌تر client-server است. می‌توان آن را به عنوان مجموعه‌ای از سوئیچ‌ها در نظر گرفت که می‌تواند به صورت مستقیم یک پیام را در امتداد یک مسیر خاص بین مؤلفه‌های برنامه بر اساس محتوای پیام و پیاده‌سازی سیاست‌های کسب و کار هدایت کند. ESB قابلیت agile و انعطاف‌پذیری را با توجه به ارتباطات پروتکل سطح بالا بین برنامه‌ها ارتقا می‌دهد.مفهوم گذرگاه سرویس سازمانی مشابه مفهوم گذرگاه موجود در معماری سخت‌افزار کامپیوتر است که با طراحی ماژولار و همروند سیستم عامل کامپیوتر با کارایی بالا ترکیب شده است. ESB مفاهیم جدید سیستم عامل‌ها برای سرویس‌های مستقل که روی شبکه‌هایی از کامپیوترهای مختلف و مستقل اجرا می‌شوند را اعمال می‌کند. یک ESB مانند سیستم عامل‌های همروند،‌علاوه بر پذیرش، تفسیر و مسیریابی درخواست‌های مشتری برای سرویس‌های پاسخگویی مناسب یک سرویس مربوط به کالا را نیز ارائه می‌دهد. پیاده‌سازی‌های ESB از میان‌افزار پیام‌گرا مبتنی بر رویداد محور و استاندارد در ترکیب با صف‌های پیام به عنوان چارچوب‌های تکنولوژی استفاده می‌کند. ESB بر ساخت دقیق مدل پیام سازمانی و طراحی مناسب عملکرد ارائه شده توسط برنامه‌ها متکی است. اگر مدل پیام به طور کامل عملکرد برنامه را کپسوله نکند، برنامه‌های دیگری که مایل به آن عملکرد هستند، ممکن است مجبور شوند گذرگاه را دور بزنند و برنامه‌های ناهماهنگ را به طور مستقیم فراخوانی کنند. با انجام این کار اصول مدل ESB نقض می‌شود و بسیاری از مزایای استفاده از این معماری را نقض می‌کند.گذرگاه سرويس سازماني (ESB)موضوع و راه حلدر چند دهه اخیر چندین الگوی معماری برای کاهش زحمات ناشی از ادغام سیستم‌های متفاوت در یک سازمان به وجود آمدند. معماری Client-Server (CSA) اولین رویکرد در این زمینه بود که ساده بود ولی فاقد مقیاس‌پذیری بود. پس از آن معماری سرویس‌گرا (SOA) به وجود آمد که منطق کسب و کار را به خوبی و به سرویس‌هایی که با هم همکاری می کنند، تقسیم می‌کند. ESB به عنوان یک لایه میان‌افزار در SOA برای تسهیل این همکاری و به عنوان یک جز داخلی SOA در نظر گرفته می‌شود.معماري SOA به همراه ESB به عنوان جز داخلي آنوظایف اصلی ESBتبدیل پروتکل‌ها و مسیریابی پیام‌ها بین سرویس‌ها به آسانیتغییر قالب داده را به منظور ایجاد قابلیت همکاری برای تراکنش‌های اجرا شده در صورت نیازنظارت و کنترل مسیریابی تبادل پیام بین سرویس‌هارفع اختلاف بین مؤلفه‌های سرویس ارتباطیکنترل استقرار و نسخه‌سازی سرویس‌هامرتب کردن استفاده از خدمات اضافیارائه سرویس‌های کالا مانند مدیریت رویداد، تبدیل و نگاشت داده، صف‌بندی و مرتب‌سازی پیام و رویداد، امنیت یا مدیریت استثنا، تبدیل پروتکل و اجرای کیفیت مناسب سرویس ارتباطیویژگی‌های ESBفراگیر بودن: می‌توان یک ESB را برای نیازهای پروژه‌های یکپارچه‌سازی همه منظوره در موقعیت‌های مختلف یکپارچه‌سازی تطبیق داد که می‌تواند پروژه‌های یکپارچه‌ای را ایجاد کند که کل سازمان و شرکای کسب و کار را دربرگیرد.معماری SOA بسیار توزیع شده و رویداد محور: مؤلفه‌های یکپارچه با اتصال سست می‌توانند روی گذرگاه در کل توپولوژی‌های استقرار جغرافیایی توزیع شده مستقر شوند. اما به عنوان سرویس‌های اشتراکی از هر جایی در گذرگاه قابل دسترس هستند.انتخاب استقرار مؤلفه‌های ادغام شده: آداپتورها، سرویس‌های تبدیل داده‌های توزیع شده و سرویس‌های مسیریابی مبتنی بر محتوا می‌توانند به طور انتخابی در زمان و مکان مورد نیاز مستقر شوند و به طور مستقل مقیاس‌بندی می‌شوند.امنیت و قابلیت اطمینان: همه مؤلفه‌هایی که از طریق گذرگاه با یکدیگر ارتباط دارند می‌توانند دارای مزایایی مانند پیام‌رسانی قابل اعتماد، یکپارچگی تراکنشی و ارتباطات احراز هویت ایمن باشد.جریان پردازش و تنظیم: یک ESB سبب می‌شود تا داده در میان هر برنامه و سرویس که به گذرگاه وصل شده است، به صورت محلی یا از راه دور جریان یابد.محیط مدیریت شده خودمختار در عین حال وابسته: یک ESB از خودمختاری محلی در سطح واحد دپارتمان و تجاری پشتیبانی می‌کند و همچنان می‌تواند در یک محیط یکپارچه مدیریت شده بزرگتر ادغام شود.پذیرش افزایشی: یک ESB می‌تواند برای پروژه‌های کوچک استفاده شود. هر پروژه منحصر به فرد می‌تواند در یک شبکه یکپارچه بسیار بزرگتر ایجاد شود که می‌تواند از هر جایی روی گذرگاه از راه دور مدیریت شود.پشتیبانی از XML: یک ESB می‌تواند از XML به عنوان نوع داده محلی استفاده شود.بینش در زمان واقعی: یک ESB زیرساخت‌هایی را برای فعال کردن بینش بلادرنگ در مورد داده‌های کسب و کار زنده فراهم می‌کند.چالش‌های گذرگاه سرویس سازمانیعدم استاندارد پذیرفته شده واحد برای ویژگی‌ها، رفتار، مفاهیم و پیاده‌سازی‌های ESBممکن است برای توصیف هر چیزی که از گردش کار پشتیبانی می‌کند مورد استفاده قرار گیرد. مثلا ارائه دهنده اوراکل می‌تواند چند نوع ابزار میان‌افزار در دسته‌بندی ESB قرار دهد که ممکن است این ابزارها تعدادی تابع مدیریت برنامه داشته باشند.هدایت پیام‌ها بر اساس سیاست عملکردی است که ESBها را از سایر ابزارهای میان‌افزار جدا می‌کند. برای کاربران مهم است که نیازهای کسب و کار خود را به وضوح تعریف کنند و سپس ویژگی‌های ESBهای کاندید خود را در برابر این نیازها ارزیابی می‌کنند.مزایای گذرگاه سرویس سازمانیبه دلیل آن که ESB نحوه حرکت کار را کنترل می‌کند، تغییر مؤلفه‌ها یا افزودن مؤلفه‌های اضافی را برای برنامه آسان می‌سازد.مکانی مناسب برای اجرای امنیت و انطباق نیازمندی‌ها، شرایط استثنا یا ثبت log عادی و مدیریت و نظارت بر عملکرد تراکنش ایجاد می‌کند.تعادل بار را فراهم می‌کند، که می‌توان در آن چندین کپی از مؤلفه‌ها را برای بهبود عملکرد ایجاد کرد. همچنین از یک مؤلفه یا منبع خراب در صورت شکست و خرابی پشتیبانی می‌کند.مقیاس‌‌بندی از راه‌ حل‌های نقطه‌ای تا استقرار در سطح سازمانی (گذرگاه توزیع شده)پیکربندی بیشتر نسبت به یکپارچه‌سازی کدموتور قواعد مرکزی و واسطه و کارگزار مرکزی ندارد.متصل کردن و قطع کردن آن آسان است و سیستم دارای چسبندگی و اتصال سست است.یک ESB متمرکز می‌تواند ارتباط، پیام‌رسانی و ادغام آسان و استانداردی را در میان سرویس‌های سازمان ارائه دهد. که می‌توان هزینه‌های سخت‌افزاری و نرم‌افزاری را به اشتراک گذاشت و سرورها را در صورت نیاز برای استفاده ترکیبی فراهم کرد و یک راه‌حل متمرکز و مقیاس‌پذیر را ارائه کرد.از یکپارچه‌سازی برنامه‌، یکپارچه‌سازی داده و تنظیم خودکار سرویس در فرایند تجاری پشتیبانی می‌کند. سبب می‌شود تا توسعه‌دهندگان زمان کمتری را برای یکپارچه‌سازی و زمان بیشتری را برای ارائه و بهبود برنامه‌های خود صرف کنند. همچنین توانایی استفاده مجدد از این ادغام‌ها را از یک پروژه به پروژه دیگر سبب افزایش بهره‌وری و صرفه‌جویی می‌گردد.معایب گذرگاه سرویسسرعت ارتباط به ویژه برای سرویس‌هایی که از قبل سازگار هستند پایین است.یک نقطه شکست و خرابی می‌تواند ارتباطات را در کل سازمان پایین بیاورد.دارای پیکربندی و پیچیدگی نگهداری بالا است.در بسیاری از سازمان‌های دیگر ESB به عنوان گلوگاه در نظر گرفته می‌شود. ایجاد تغییرات یا پیشرفت‌ها در یک ادغام سبب بی‌ثباتی سایر استفاده‌کنندگان از آن ادغام می‌گردد. بروزرسانی‌ها برای میان‌افزار ESB بر ادغام موجود تاثیر می‌گذارد. بنابراین تست‌های قابل توجهی برای هر بروزرسانی مورد نیاز است. به دلیل مدیریت مرکزی ESB تیم‌های برنامه خیلی زود در صف انتظار ادغام قرار می‌گیرند. بنابراین افزایش حجم ادغام‌ها، اجرا با قابلیت دسترسی بالا و بازیابی سخت سرورهای ESB سبب افزایش هزینه و دشواری چالش‌های فنی می‌گردد.چالش‌های بروزرسانی، نگهداری و مقیاس‌بندی یک ESB متمرکز طاقت‌فرسا و پرهزینه است که افزایش بهره‌وری را به تاخیر می‌اندازد.الگوی ESB با استفاده از طراحی ویژه ادغام شده در زمان اجرا و مجموعه‌ای از ابزارها پیاده‌سازی می‌شود که بهترین بهره‌وری ممکن را تضمین می‌کند.ابزارهای گذرگاه سرویس سازمانی (ESB)ابزارهای ESB مناسب می‌توانند به سازمان‌ها کمک کنند تا سرعت یکپارچه‌سازی برنامه را افزایش دهند و سریع‌تر وارد بازار شوند. در ادامه دو نمونه از ابزارهای ESB معرفی می‌شوند و بر اساس ویژگی‌ها و مزایای فنی بررسی می‌‌شوند.ESB Toolsابزار Mule ESBیک گذرگاه سرویس سازمانی مبتنی بر جاوا است و منبع باز است که توسط MuleSoft ارائه شده است و تعاملات داده و برنامه را انجام می‌دهد. توسعه‌ دهندگان ادغام‌های چند پروتکلی را بین سیستم و سرویس‌ها را روی ابر و در محل ایجاد می‌کنند. این معماری بسیار سبک و مقیاس‌پذیر است و می‌تواند تعاملات بین سیستم‌های قدیمی، برنامه‌های داخلی و تمام انتقال‌ها و پروتکل‌های مهم را مدیریت می‌کند. می‌توان در ابتدا برنامه کوچک را شروع کرد و در طول زمان برنامه‌های بیشتری را متصل کرد. ویژگی‌ها و مزایای آن عبارتند از:پروتکل صف‌بندی پیام پیشرفته: پشتیبانی بر اساس RabbitMQ که کلاینت جاوا هست، انجام می‌شود.مسیریاب‌ها: از مسیریاب‌ها برای تقسیم، ترکیب، مرتب‌سازی مجدد، ارزیابی و رساندن پیام‌ها استفاده می‌کند.اتصال‌دهنده Anypoint: پروتکل، پایگاه داده، انتقال و رابط‌های پایگاه داده از قبل ساخته شدند که در صورت نیاز می‌توان آن‌ها را ساخت.موتور زمان اجرای Mule: روی ابر یا در محل مستقر می‌شود.مدیر زمان اجرای Mule: امکان استقرار، نظارت و اشکال‌زدایی نمونه‌های Mule را فراهم می‌کند.Mule ESBابزار Red Hat JBoss Fuseچیزی بیش از درگاه سرویس سازمانی است و بخشی از یک راه حل یکپارچه‌سازی چابک است. یک پلتفرم یکپارچه منبع باز سبک است که در ابر یا در محل در دسترس است. بر اساس استانداردهای باز ساخته شده است و می ‌توان سرویس‌های یکپارچه را در صورت نیاز مستقر کرد. توسط جامعه بزرگی از توسعه‌دهندگان نسبت به تیم‌های کوچکی که کد منبع اختصاصی را نگهداری می‌کنند، تقویت شده است. این ابزار دارای ویژگی‌هایی است که عبارتند از:دارای یک واسط پیام منبع باز و سریع است که از JMS و کلاینت‌هایی با زبان‌های C و پایتون پشتیبانی می‌کند.دارای یک چارچوب منبع باز است که پیاده‌سازی‌های آزمایش شده و درست الگوهای یکپارچه سازمانی را فراهم می‌کند. همچنین سبب می‌شود تا از راه حل‌های از پیش موجود برای چالش‌های کد‌نویسی مرتبط با یکپارچه‌سازی سازمانی استفاده کنند.دارای یک چارچوب سرویس وب منبع باز است که برای ارتباط با استفاده از استانداردها و فرمت‌های مختلف استفاده می‌شود.دارای یک کانتینر زمان اجرا برای استقرار برنامه‌ها است و API محور است. خدمات را از هم جدا می‌کند تا بتوان به صورت مستقل ایجاد و مستقر کرد و گسترش داد.دارای یک ابزار ارکستراسیون برای استقرار میان‌افزارهای بزرگ است.RedHat Fuseشرکت‌های ایرانی فعال در حوزه ESBدر این بخش دو مورد از شرکت‌های ایرانی فعال در حوزه ESB و محصولات آن‌ها در زمینه ESB معرفی می‌گردند.شرکت داده پردازشرکت داده پرداز یک پلتفرم ESB به منظور یکپارچه‌سازی انواع سرویس‌ها در سازمان‌های بزرگ، مدیریت جریان اطلاعات در آن‌ها و مدیریت و تجمیع اطلاعات سرویس‌های یک سازمان را ارائه می‌دهد. ویژگی‌های اصلی این پلتفرم توانایی برقراری ارتباط با ماکروسرویس‌های بزرگ و برقراری جریان اطلاعات بین برنامه‌های کاربردی سازمانی و مدیریت آن‌ها است و مهم‌ترین ویژگی‌های آن توسعه‌پذیری و چابکی است. این پلتفرم به عنوان نرم‌افزاری مرکزی برای پردازش و ارائه اطلاعات در مجموعه‌های بزرگ می‌باشد. کاهش هزینه‌های توسعه و پشتیبانی از نرم‌افزار،‌ایجاد ارتباط و بهینه‌سازی سیستم‌ها، افزایش بهره‌وری سازمان‌ها، امکان اتصال به انواع وب سرویس‌ها و پایگاه‌های داده و پشتیبانی ازتعداد زیادی کاربر به طور هم‌زمان از دیگر ویژگی‌های پلتفرم ESB شرکت داده پرداز است.شرکت فناوری اطلاعات ایرانیانشرکت فناوری اطلاعات ایرانیان محصولی به نام گذر به عنوان بستر تبادل سرویس سازمانی برای یکپارچه‌سازی و مدیریت ارتباطات بین سازمانی و درون سازمانی را ارائه می‌دهد. از جمله امکانات سامانه ESB گذر عبارتند از:ایجاد API روی سامانه‌های قدیمی یا غیرقابل تغییر و یا اصلاح ساختاری یا تبدیل فنی بر روی APIهای موجود این سامانه‌هاترکیب میکروسرویس‌های مختلف و ایجاد یک وب ‌سرویس جدیدبرقراری و مدیریت ارتباط با سازمان‌های بالادستی و یا همکارامکان انطباق‌پذیریمدیریت ارتباطات آسنکرونکنترل دسترسی در سطح ارتباطات سیستمیحسابرسی دسترسی‌های انجام شده در سطح ارتباطات سیستمی ( بر اساس SLA تعریف ‌شده با بهره‌بردار)پایش صحت عملکرد واسط‌های سامانه‌های اطلاعاتیشمای کلی سامانه گذرجمع‌بندیدر این مقاله ابتدا در بخش اول به معرفی و بررسی گذرگاه سرویس سازمانی (ESB) در حوزه معماری نرم‌افزار و توسعه زیرساخت نرم‌افزار پرداخته شد و سپس در بخش دوم دو مورد از ابزارهای مورد نیاز برای ایجاد گذرگاه سرویس سازمانی (ESB) و زیرساخت مناسب معرفی شدند و در پایان نیز دو مورد از شرکت‌های ایرانی فعال در حوزه ارائه خدمات مربوط به گذرگاه سرویس سازمانی (ESB) به همراه محصولاتی که ارائه می‌دهند معرفی و بیان گردید.«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»منابع و مراجع: https://searchapparchitecture.techtarget.com/definition/Enterprise-Service-Bus-ESB https://en.wikipedia.org/wiki/Enterprise_service_bus https://rapidapi.com/blog/enterprise-service-bus/?utm_source=google&utm_medium=cpc&utm_campaign=DSA&gclid=Cj0KCQiA2NaNBhDvARIsAEw55hikDVsC9JxqC4Dhh7IUy5etNSIzAfMNFYkGDkAYaI6wtvLTI0av1dAaAvSxEALw_wcB https://www.oreilly.com/library/view/enterprise-service-bus/0596006756/ch01.html https://www.ibm.com/cloud/learn/esb https://www.mulesoft.com/resources/esb/what-mule-esb https://en.wikipedia.org/wiki/Mule_(software) https://shadow-soft.com/enterprise-service-bus-esb-tools/ https://dadehpardaz.com/esb https://www.iritco.ir/gozar-esb/