يک گذرگاه سرويس سازماني (enterprise service bus) يک الگوی معماری و پلتفرم نرمافزاری است که برای توزیع کار بین مؤلفههای متصل برنامه مورد استفاده قرار میگیرد و از طریق آن یک مؤلفه نرمافزاری مرکزی، ادغام بین برنامهها را انجام میدهد. انتقال مدل داده را انجام میدهد و اتصال را مدیریت میکند و به صورت بالقوه ترکیب چندین درخواست را مدیریت میکند. یک سیستم ارتباطی بین برنامههای نرمافزاری در حال تعامل در یک معماری سرویسگرا و الگویی برای معماری سرویسگرا پیادهسازی میکند و برای طراحی شبکه مورد قبول در شبکه جهانی وب نیز مورد استفاده قرار میگیرد. برای ایجاد یکنواختی در جابهجایی کار طراحی شده است. برنامههایی با قابلیت اتصال به ESB و تصدیق پیامها براساس ساختار ساده و قوانین و سیاستهای کسب و کار را ارائه میدهد. EBS در نرمافزاری که بین برنامههای تجاری کار میکند و ارتباط بین آنها را فعال میکند، پیادهسازی میشود. باید بتواند تمام تماسهای مستقیم با برنامهها را روی گذرگاه جایگذاری کند، به طوری که تمام ارتباطات از طریق ESB انجام شود. برای رسیدن به این هدف ESB باید عملکرد ارائه شده توسط برنامههای بخش خودش را به صورت معنادار کپسوله کند. مدل پیام مجموعهای استاندارد از پیامها را تعریف میکند که ESB ارسال و دریافت میکند.
عملکرد اصلی آن این هست که به عنوان گذرگاه پیام عمل میکند که بعد از دریافت پیامها، آنها را بین مؤلفهها یا برنامههای مناسب بر اساس یک سیاست هدایت میکند. اغلب چون برنامه بدون مدل پیام یکسان تکامل یافته است، ESB پیام را به قالبی تبدیل میکند که برنامه بتواند آن را تفسیر کند. یک آداپتور نرمافزاری مانند یک آداپتور فیزیکی وظیفه انجام این تغییرات را دارد. کاربرد اصلی آن یکپارچهسازی برنامههای سازمانی ناهمگن و چشمانداز سرویس پیچیده است. یک معماری نرمافزاری و ابزاری است که در محاسبات توزیع شده و یکپارچه سازی مؤلفهها مورد استفاده قرار میگیرد و نوع خاصی از مدل کلیتر client-server است. میتوان آن را به عنوان مجموعهای از سوئیچها در نظر گرفت که میتواند به صورت مستقیم یک پیام را در امتداد یک مسیر خاص بین مؤلفههای برنامه بر اساس محتوای پیام و پیادهسازی سیاستهای کسب و کار هدایت کند. ESB قابلیت agile و انعطافپذیری را با توجه به ارتباطات پروتکل سطح بالا بین برنامهها ارتقا میدهد.
مفهوم گذرگاه سرویس سازمانی مشابه مفهوم گذرگاه موجود در معماری سختافزار کامپیوتر است که با طراحی ماژولار و همروند سیستم عامل کامپیوتر با کارایی بالا ترکیب شده است. ESB مفاهیم جدید سیستم عاملها برای سرویسهای مستقل که روی شبکههایی از کامپیوترهای مختلف و مستقل اجرا میشوند را اعمال میکند. یک ESB مانند سیستم عاملهای همروند،علاوه بر پذیرش، تفسیر و مسیریابی درخواستهای مشتری برای سرویسهای پاسخگویی مناسب یک سرویس مربوط به کالا را نیز ارائه میدهد. پیادهسازیهای ESB از میانافزار پیامگرا مبتنی بر رویداد محور و استاندارد در ترکیب با صفهای پیام به عنوان چارچوبهای تکنولوژی استفاده میکند. ESB بر ساخت دقیق مدل پیام سازمانی و طراحی مناسب عملکرد ارائه شده توسط برنامهها متکی است. اگر مدل پیام به طور کامل عملکرد برنامه را کپسوله نکند، برنامههای دیگری که مایل به آن عملکرد هستند، ممکن است مجبور شوند گذرگاه را دور بزنند و برنامههای ناهماهنگ را به طور مستقیم فراخوانی کنند. با انجام این کار اصول مدل ESB نقض میشود و بسیاری از مزایای استفاده از این معماری را نقض میکند.
در چند دهه اخیر چندین الگوی معماری برای کاهش زحمات ناشی از ادغام سیستمهای متفاوت در یک سازمان به وجود آمدند. معماری Client-Server (CSA) اولین رویکرد در این زمینه بود که ساده بود ولی فاقد مقیاسپذیری بود. پس از آن معماری سرویسگرا (SOA) به وجود آمد که منطق کسب و کار را به خوبی و به سرویسهایی که با هم همکاری می کنند، تقسیم میکند. ESB به عنوان یک لایه میانافزار در SOA برای تسهیل این همکاری و به عنوان یک جز داخلی SOA در نظر گرفته میشود.
فراگیر بودن: میتوان یک ESB را برای نیازهای پروژههای یکپارچهسازی همه منظوره در موقعیتهای مختلف یکپارچهسازی تطبیق داد که میتواند پروژههای یکپارچهای را ایجاد کند که کل سازمان و شرکای کسب و کار را دربرگیرد.
معماری SOA بسیار توزیع شده و رویداد محور: مؤلفههای یکپارچه با اتصال سست میتوانند روی گذرگاه در کل توپولوژیهای استقرار جغرافیایی توزیع شده مستقر شوند. اما به عنوان سرویسهای اشتراکی از هر جایی در گذرگاه قابل دسترس هستند.
انتخاب استقرار مؤلفههای ادغام شده: آداپتورها، سرویسهای تبدیل دادههای توزیع شده و سرویسهای مسیریابی مبتنی بر محتوا میتوانند به طور انتخابی در زمان و مکان مورد نیاز مستقر شوند و به طور مستقل مقیاسبندی میشوند.
امنیت و قابلیت اطمینان: همه مؤلفههایی که از طریق گذرگاه با یکدیگر ارتباط دارند میتوانند دارای مزایایی مانند پیامرسانی قابل اعتماد، یکپارچگی تراکنشی و ارتباطات احراز هویت ایمن باشد.
جریان پردازش و تنظیم: یک ESB سبب میشود تا داده در میان هر برنامه و سرویس که به گذرگاه وصل شده است، به صورت محلی یا از راه دور جریان یابد.
محیط مدیریت شده خودمختار در عین حال وابسته: یک ESB از خودمختاری محلی در سطح واحد دپارتمان و تجاری پشتیبانی میکند و همچنان میتواند در یک محیط یکپارچه مدیریت شده بزرگتر ادغام شود.
پذیرش افزایشی: یک ESB میتواند برای پروژههای کوچک استفاده شود. هر پروژه منحصر به فرد میتواند در یک شبکه یکپارچه بسیار بزرگتر ایجاد شود که میتواند از هر جایی روی گذرگاه از راه دور مدیریت شود.
پشتیبانی از XML: یک ESB میتواند از XML به عنوان نوع داده محلی استفاده شود.
بینش در زمان واقعی: یک ESB زیرساختهایی را برای فعال کردن بینش بلادرنگ در مورد دادههای کسب و کار زنده فراهم میکند.
الگوی ESB با استفاده از طراحی ویژه ادغام شده در زمان اجرا و مجموعهای از ابزارها پیادهسازی میشود که بهترین بهرهوری ممکن را تضمین میکند.
ابزارهای ESB مناسب میتوانند به سازمانها کمک کنند تا سرعت یکپارچهسازی برنامه را افزایش دهند و سریعتر وارد بازار شوند. در ادامه دو نمونه از ابزارهای ESB معرفی میشوند و بر اساس ویژگیها و مزایای فنی بررسی میشوند.
یک گذرگاه سرویس سازمانی مبتنی بر جاوا است و منبع باز است که توسط MuleSoft ارائه شده است و تعاملات داده و برنامه را انجام میدهد. توسعه دهندگان ادغامهای چند پروتکلی را بین سیستم و سرویسها را روی ابر و در محل ایجاد میکنند. این معماری بسیار سبک و مقیاسپذیر است و میتواند تعاملات بین سیستمهای قدیمی، برنامههای داخلی و تمام انتقالها و پروتکلهای مهم را مدیریت میکند. میتوان در ابتدا برنامه کوچک را شروع کرد و در طول زمان برنامههای بیشتری را متصل کرد. ویژگیها و مزایای آن عبارتند از:
پروتکل صفبندی پیام پیشرفته: پشتیبانی بر اساس RabbitMQ که کلاینت جاوا هست، انجام میشود.
مسیریابها: از مسیریابها برای تقسیم، ترکیب، مرتبسازی مجدد، ارزیابی و رساندن پیامها استفاده میکند.
اتصالدهنده Anypoint: پروتکل، پایگاه داده، انتقال و رابطهای پایگاه داده از قبل ساخته شدند که در صورت نیاز میتوان آنها را ساخت.
موتور زمان اجرای Mule: روی ابر یا در محل مستقر میشود.
مدیر زمان اجرای Mule: امکان استقرار، نظارت و اشکالزدایی نمونههای Mule را فراهم میکند.
چیزی بیش از درگاه سرویس سازمانی است و بخشی از یک راه حل یکپارچهسازی چابک است. یک پلتفرم یکپارچه منبع باز سبک است که در ابر یا در محل در دسترس است. بر اساس استانداردهای باز ساخته شده است و می توان سرویسهای یکپارچه را در صورت نیاز مستقر کرد. توسط جامعه بزرگی از توسعهدهندگان نسبت به تیمهای کوچکی که کد منبع اختصاصی را نگهداری میکنند، تقویت شده است. این ابزار دارای ویژگیهایی است که عبارتند از:
در این بخش دو مورد از شرکتهای ایرانی فعال در حوزه ESB و محصولات آنها در زمینه ESB معرفی میگردند.
شرکت داده پرداز
شرکت داده پرداز یک پلتفرم ESB به منظور یکپارچهسازی انواع سرویسها در سازمانهای بزرگ، مدیریت جریان اطلاعات در آنها و مدیریت و تجمیع اطلاعات سرویسهای یک سازمان را ارائه میدهد. ویژگیهای اصلی این پلتفرم توانایی برقراری ارتباط با ماکروسرویسهای بزرگ و برقراری جریان اطلاعات بین برنامههای کاربردی سازمانی و مدیریت آنها است و مهمترین ویژگیهای آن توسعهپذیری و چابکی است. این پلتفرم به عنوان نرمافزاری مرکزی برای پردازش و ارائه اطلاعات در مجموعههای بزرگ میباشد. کاهش هزینههای توسعه و پشتیبانی از نرمافزار،ایجاد ارتباط و بهینهسازی سیستمها، افزایش بهرهوری سازمانها، امکان اتصال به انواع وب سرویسها و پایگاههای داده و پشتیبانی ازتعداد زیادی کاربر به طور همزمان از دیگر ویژگیهای پلتفرم ESB شرکت داده پرداز است.
شرکت فناوری اطلاعات ایرانیان
شرکت فناوری اطلاعات ایرانیان محصولی به نام گذر به عنوان بستر تبادل سرویس سازمانی برای یکپارچهسازی و مدیریت ارتباطات بین سازمانی و درون سازمانی را ارائه میدهد. از جمله امکانات سامانه ESB گذر عبارتند از:
در این مقاله ابتدا در بخش اول به معرفی و بررسی گذرگاه سرویس سازمانی (ESB) در حوزه معماری نرمافزار و توسعه زیرساخت نرمافزار پرداخته شد و سپس در بخش دوم دو مورد از ابزارهای مورد نیاز برای ایجاد گذرگاه سرویس سازمانی (ESB) و زیرساخت مناسب معرفی شدند و در پایان نیز دو مورد از شرکتهای ایرانی فعال در حوزه ارائه خدمات مربوط به گذرگاه سرویس سازمانی (ESB) به همراه محصولاتی که ارائه میدهند معرفی و بیان گردید.
«این مطلب، بخشی از تمرینهای درس معماری نرمافزار در دانشگاه شهیدبهشتی است»
https://www.oreilly.com/library/view/enterprise-service-bus/0596006756/ch01.html
https://www.ibm.com/cloud/learn/esb