معماری ESB یا گذرگاه سرویس سازمانی (Enterprise Service Bus) یکی از راهکارهای پرکاربرد در یکپارچهسازی سامانههای مختلف و ناسازگار در محیطهای سازمانی بهشمار میرود. این معماری با ایجاد یک گذرگاه ارتباطی مرکزی، امکان تبادل امن و استاندارد دادهها میان اپلیکیشنهای گوناگون را فراهم میسازد. با افزایش پیچیدگی زیرساختهای فناوری اطلاعات، نیاز به رویکردی منعطف و مقیاسپذیر برای مدیریت ارتباطات سرویسها بیش از پیش احساس میشود. در ادامه، به بررسی معماری ESB، مزایا، اجزا، محدودیتها و جایگزینهای آن پرداخته خواهد شد.
معماری ESB چیست؟
گذرگاه سرویس سازمانی (ESB) یک الگوی معماری نرمافزاری است که تبادل آنی دادهها بین اپلیکیشن های مختلف را پشتیبانی میکند. سازمانهای بزرگ دارای برنامههای متعددی هستند که وظایف مختلفی را با استفاده از مدلهای دادهای متنوع، پروتکلها و محدودیتهای امنیتی انجام میدهند. معماری ESB یکپارچهسازی برنامهها را با انجام عملیاتهایی مانند تبدیل دادهها، تبدیل پروتکل و مسیریابی پیامها آسانتر میکند. برنامهها دادههای مرتبط را به سامانه ESB ارسال میکنند و این سیستم دادهها را تبدیل کرده و به برنامههای دیگر که آن را نیاز دارند، منتقل مینماید.
تصویر(1)
مزایای گذرگاه سرویس سازمانی یا ESB چیست؟
مفهوم گذرگاه سرویس سازمانی (ESB) میتواند ارتباطات، پیامرسانی و یکپارچهسازی بین سرویسها را در سراسر یک سازمان، استاندارد و سادهسازی کند. در ادامه، برخی از مزایای پیادهسازی معماری ESB با مقیاس کوچک، ارائه شده است.
بهبود یکپارچهسازی برنامهها
ESB یک پلتفرم مرکزی برای یکپارچهسازی برنامههای سازمانی ارائه میدهد. سازمانها میتوانند انواع سیستمها و برنامهها را بدون توجه به فناوریها یا پروتکلهای زیربنایی آنها به صورت یکپارچه ادغام کنند. این امر نگهداری، مدیریت و مقیاسپذیری برنامهها را برای سازمانها آسانتر میکند.
افزایش کارایی توسعهدهندگان
توسعهدهندگان با استفاده از سرویسهای ارتباطی ESB، برنامهها را سریعتر توسعه میدهند. تیمها هزینههای زیرساختی را به اشتراک میگذارند و سرورها را برای استفاده مشترک آماده میکنند. این کار هزینههای سربار و عملیاتی را کاهش میدهد و در عین حال کارایی کلی را بهبود میبخشد. همچنین ESB میتواند موجب کاهش زمان ورود به بازار و هزینههای توسعه شود.
بهبود دید و کنترل
با معماری ESB، سازمانها میتوانند روی تبادل دادهها و سرویسها در میان برنامههای مختلف، نظارت کنند و هرگونه مشکل احتمالی را به سرعت شناسایی و رفع نمایند. این امر به سازمانها کمک میکند تا از در دسترس بودن، قابلیت اطمینان و امنیت برنامههای خود، اطمینان حاصل کنند.
گذرگاه سرویس سازمانی چگونه کار میکند؟
گذرگاه سرویس سازمانی (ESB) بر اساس اصول معماری سرویسگرا (Service-Oriented Architecture یا SOA) عمل میکند. SOA یک روش توسعه نرمافزار است که از اجزای نرمافزاری به نام services برای ایجاد اپلیکیشن های کسبوکار استفاده مینماید. هر service یک ابزار کسبوکار را ارائه میدهد و چندین service میتوانند با یکدیگر در پلتفرمها و زبانهای مختلف ارتباط برقرار کنند.
پلتفرم ESB سرویسهای ارتباطی را برای تعامل اپلیکیشن ها با یکدیگر فراهم می کند. برخی از آنها شامل تبدیل پیام، تبدیل پروتکل، مسیریابی و احراز هویت است.
در ادامه، به اجزای کلیدی معماری ESB پرداخته میشود.
نقاط پایانی (Endpoints)
تصویر(2)
در معماری ESB، نقاط پایانی را میتوان همانند نقاط ورود یا خروج به ESB دانست. هر نقطه پایانی معمولاً دارای یک آدرس یا شناسه منحصربه فرد است. میتوانید نقاط پایانی را با استفاده از فناوریهای مختلفی مانند رابط وب سرویس، صفهای پیام یا سرورهای FTP پیادهسازی کنید. نقاط پایانی میتوانند انواع مختلف پیامها مانند XML، JSON یا دادههای باینری را نیز پردازش کنند.
انعطافپذیری معماری نقاط پایانی به ESB اجازه میدهد تا با طیف گستردهای از سیستمها و برنامهها یکپارچه شود.
آداپتور (Adapter)
آداپتور در ابزارهای ESB، پیامها را بین فرمتها و پروتکلهای مختلف ترجمه میکند. این بدان معنا است که پیامها میتوانند به درستی توسط نرمافزار گیرنده، نمایش داده شوند. همچنین ممکن است قابلیتهایی مانند ثبت پیامها، نظارت، احراز هویت و مدیریت خطاها را فراهم کند.
باس (Bus)
باس هسته اصلی سامانه ESB برای تبادل پیامها بین نقاط پایانی است. این قسمت، مجموعهای از قوانین یا سیاستها را بر اساس معیارهای مختلف مانند نوع پیام، محتوا یا مقصد، برای مسیریابی پیامها استفاده میکند.
شما میتوانید سیاستها را در پیکربندی ESB تعریف کنید تا نیازهای فرآیندهای پیچیده کسبوکار را برآورده سازد. باس از پروتکلهای ارتباطی مختلفی مانند HTTP، JMS و FTP برای ارتباط با نقاط پایانی استفاده میکند.
باس به صورت زیر عمل مینماید:
- باس پیام را در یک نقطه پایانی دریافت میکند.
- آدرس نقاط پایانی مقصد را با بررسی سیاست کسبوکار تعیین مینماید.
- پیام را پردازش کرده و به نقطه پایانی مقصد ارسال میکند.
برای مثال، فرض کنید باس یک فایل XML را از برنامهای متصل به نقطه پایانی A دریافت مینماید. مشخص میکند که فایل XML باید به نقاط پایانی B و C ارسال شود. نقطه پایانی B نیازمند دادههای JSON است، در حالی که نقطه پایانی C به تابع HTTP Put نیاز دارد. آداپتور فایل XML را به JSON تبدیل میکند و باس آن را به نقطه پایانی B ارسال مینماید. همچنین باس یک درخواست HTTP با XML را در نقطه پایانی C اجرا میکند.
محدودیتهای گذرگاه سرویس سازمانی چیست؟
معماری سازمانی به دلیل محدودیتهای زیر از گذرگاه سرویس سازمانی (ESB) فاصله گرفته است.
پیچیدگی
پیادهسازی و نگهداری معماری ESB نیازمند دانش فنی تخصصی است که آن را پیچیده و پرهزینه میکند. Vendor Lock-in تغییر به روش ESB دیگر را دشوار مینماید و گزینههای یکپارچهسازی دادهها را محدود میسازد. تیمها به دلیل اینکه تنها تیم مدیریت مرکزی ESB میتواند برنامههای سازمانی جدید را یکپارچه سازی کند، با زمان انتظار طولانی مواجه میشوند.
مقیاسپذیری
نرمافزار ESB به دلیل لایههای اضافی انتزاع و پردازش، تأخیر بیشتری در ارتباطات ایجاد میکند. با افزایش تعداد نقاط پایانی و مسیریابی سرویسهای ارتباطی، ESB به یک گلوگاه تبدیل میشود و عملکرد را تحت تأثیر قرار میدهد.
دشوار بودن ارتقا
بهبود یکپارچهسازی ESB ممکن است در سایر اجزای متصل ناپایداری ایجاد کند و نیازمند تست گسترده قبل از بروزرسانی باشد. تامین بودجه برای ارتقا پروژههای ESB نیازمند همکاری چند تیم است که میتواند چالشبرانگیز شود.
چه فناوریهایی جایگزین گذرگاه سرویس سازمانی شدهاند؟
امروزه استفاده از گذرگاه سرویس سازمانی (ESB) عمدتاً به سیستمهای قدیمی که نیازمند یکپارچهسازی پیچیده هستند محدود می شود. الگوی معماری ESB با معماری میکروسرویسها و سایر فناوریها، جایگزین شده است.
معماری میکروسرویسها از اجزای نرمافزاری بسیار کوچک و کاملاً مستقل تشکیل شده است که پروتکلهای ارتباطی خود را از طریق API های سبک ارائه میدهند. اساساً وظیفه کاربر خواهد بود که از میکروسرویس توسط API آن استفاده کند، بنابراین نیاز به ESB متمرکز حذف میشود. ظهور رایانش ابری و معماری میکروسرویسها منجر به پیدایش فناوریهای جدیدی شده است که اغلب به عنوان جایگزینهایی برای ESB ها دیده میشوند. در ادامه برخی از آنها بررسی خواهد شد.
تصویر(3)
دروازههای API یا API Gateways
API Gateways اجزای سبکی هستند که یک نقطه ورود واحد برای دسترسی مشتریان به چندین سرویس فراهم میکنند. این دروازهها اغلب برای مدیریت API ها، اعمال امنیت و مدیریت ترافیک استفاده میشوند.
مش سرویس (Service Mesh)
مش سرویس یک لایه زیرساختی اختصاصی برای مدیریت ارتباطات سرویس به سرویس در معماری میکروسرویسها است. این فناوری قابلیتهایی مانند یافتن سرویس، load balancing و مدیریت ترافیک را ارائه میدهد.
معماری رویداد محور (Event-Driven Architecture)
در معماری رویداد محور، سرویسها از طریق مدیریت رویدادهای غیرهمزمان به جای درخواستهای همزمان، ارتباط برقرار میکنند. هر رویداد در واقع یک تغییر وضعیت یا بروزرسانی است (مانند قرار گرفتن کالایی در سبد خرید یک وبسایت فروشگاهی). رویدادها میتوانند وضعیت را حمل کنند (مانند کالای خریداریشده، قیمت آن و آدرس تحویل) یا شناسه باشند (مانند اعلانی که سفارش ارسال شده است).
باس رویداد (event bus) چیست؟
اکثر سازمانها از گذرگاه سرویس سازمانی (ESB) به باس رویدادها (Event Bus) روی آوردهاند. باس رویداد، یک مسیر است که رویدادها را دریافت میکند. این باس اجزای برنامه را بر اساس رویدادها به هم متصل میکند و ساخت برنامههای مقیاسپذیر رویداد محور را آسانتر میسازد.
قوانین مرتبط با باس رویداد، رویدادها را هنگام ورود ارزیابی میکنند. هر قانون بررسی میکند که آیا رویداد با معیارهای آن مطابقت دارد یا خیر. شما یک قانون را با باس رویداد خاص مرتبط میکنید، بنابراین قانون فقط روی رویدادهای دریافتشده توسط آن باس اعمال میشود.
یک تولیدکننده (Producer) رویداد را به باس رویداد ارسال میکند. باس رویداد رویدادها را بر اساس قوانین از پیش پیکربندیشده، فیلتر و ارزیابی مینماید، سپس رویدادها را برای کاربران (Consumers) ارسال میکند. سرویسهای تولیدکننده و کابر، از هم جدا هستند که این امکان را فراهم مینماید تا به صورت مستقل مقیاسبندی، بروزرسانی و مستقر شوند.
نتیجه گیری
معماری ESB یا گذرگاه سرویس سازمانی در گذشته نقش مهمی برای یکپارچهسازی سیستمهای سازمانی ایفا میکرد اما با ظهور فناوریهای جدید مانند معماری میکروسرویسها، API Gateways و مش سرویس، نیاز به یکپارچهسازی متمرکز کاهش یافته است. امروزه سازمانها بیشتر به سمت معماریهای سبکتر، مقیاسپذیرتر و رویداد محور حرکت میکنند که چابکی و انعطافپذیری بیشتری را در توسعه و نگهداری سیستمها فراهم میآورند. با این حال، ESB همچنان در برخی سیستمهای قدیمی و پیچیده کاربرد دارد، اما آینده یکپارچهسازی سازمانی به سمت راهکارهای توزیعشده و مستقل سوق پیدا کرده است.