در هر سازمانی انتقال داده بین سیستمها به منظور دستیابی به اهداف تجاری بسیار ضروری و حیاتی است. لازم است همهی سیستمهای دامنه کسب و کار سازمان به طور کارآمد یکپارچه شوند. این سیستمها باید بتوانند به منظور برآوردن نیازهای کسب و کار، با اشتراک گذاری دادهها با یک دیگر همکاری کنند.
رویکردهای معماری متفاوتی برای یکپارچه سازی سیستمها و اپلیکیشنها وجود دارد که در گذشت زمان تکامل یافته اند. سازمانها با حرکت از یکپارچه سازی نقطه به نقطه P2P(Point to Point) به سمت مدل Hub & Spoke و سپس معماری ESB، در جهت رویکردهای یکپارچه سازی پیچیده تر پیشرفت کردند.
گذرگاه سرویس سازمانی (Enterprise Service Bus - ESB) یک معماری نرمافزاری است که امکان یکپارچهسازی اپلیکیشنها و سرویسهای سازمانی را فراهم میکند. در این پست به بررسی این معماری و ابزارهای آن میپردازیم.
گذرگاه سرویس سازمانی (ESB) یک معماری مبتنی بر bus است که امکان یکپارچه سازی چندین سیستم را به شیوهای کارآمد فراهم میکند. معماری ESB نسبت به سبکهای یکپارچه سازی سنتی نقطه به نقطه (P2P) و Hub/Spoke پیچیده تر است.
گذرگاه سرویس سازمانی (ESB) به عنوان یک میانافزار هوشمند عمل میکند تا ارتباط بین سیستمها و اپلیکیشنهای مختلف را ممکن سازد. عملکرد ESB مشابه یک سیستم حمل و نقل اتوبوس سنتی است که در آن تمامی نواحی مجاور به ایستگاههای مرکزی اتوبوس متصل شدهاند تا مسافران را به مقصدهای متصل شده برساند.
تصویر زیر معماری گذرگاه سرویس سازمانی (ESB) را نشان میدهد که در آن چندین سیستم و اپلیکیشن از طریق یک پایپ پیام رسانی مرکزی (Bus) یکپارچه شده اند. هر سیستم یکپارچه شده ممکن است در نقش تولیدکننده (producer) یا مصرفکننده (consumer) یا هر دو عمل کند.
گذرگاه ESB را میتوانیم به عنوان یک الگوی طراحی با هدف انتزاعی سازی ارتباطات بین سیستمها در یک لایه یکپارچهسازی نیز تعریف کنیم. این الگو از الگوهای یکپارچهسازی سازمانی به منظور انجام اعتبارسنجی، غنیسازی، تبدیل، تجمیع و مسیریابی، استفاده میکند.
برای تجسم بهتر گذرگاه سرویس سازمانی (ESB) میتوانید آن را به عنوان یک router در نظر بگیرید که بین اپلیکیشنهای سازمانی ارتباط برقرار میکند، یا میتوانید ESB را به عنوان مجموعهای از سوئیچها در نظر بگیرید که بر اساس پیاده سازی، سیاستهای کسب و کار یا محتوای پیام، تصمیم میگیرند که پیام را به کجا ارسال کنند.
مسیریابی، هماهنگی، تبدیل و ترجمه، میانجیگری، غنیسازی پیام، انتقال، تبدیل پروتکل و سازگاری غیر عملکردی، بخشی از مسئولیتها و قابلیتهای گذرگاه سرویس سازمانی (ESB) میباشند.
مسیریابی (Routing): هنگامی که دادهها توسط یک سیستم تولیدکننده (producer) ایجاد و به گذرگاه ESBفرستاده شدند، ESB وظیفه دارد بر اساس معیاری مشخص مسیریابی منطقی را انجام دهد و پیامها را به مصرفکنندگان (consumers) مورد نظر هدایت کند.
هماهنگی (Orchestration): گذرگاه ESB مسئولیت برنامه ریزی و هماهنگی را بر عهده دارد و در آن از چندین سرویس به منظور دستیابی به یک وظیفه تجمیعی یا ترکیبی استفاده میکند. به عنوان مثال در محیط بانکی گذرگاه ESBمیتواند از سرویسهای اپلیکیشنها یا ماژولهای بانکی استفاده کند و یک سرویس ترکیبی بر اساس نیازمندیهای کسب و کار ارائه دهد.
تبدیل و ترجمه (Transformation/Translation): هر سیستم ادغام شده به زبان خودش صحبت میکند و فرمتهای خودش را میفهمد که ممکن است لزوما با سیستم ادغام شده دیگر یکسان نباشد. این مسئولیت گذرگاه ESB است که همهی تبدیلها و ترجمههای لازم بین فرمتها و مشخصات مختلف دادهها را انجام دهد تا تضمین شود که سیستمها میتوانند به درستی یک دیگر را بفهمند.
میانجیگری و غنیسازی پیام (Mediation/Message Enrichment): گذرگاه سرویس سازمانی نقش میانجی (mediator) را نیز بازی میکند که در آن سیاستهای میانجیگری (mediation policies) روی جریانهای ورودی و خروجی (in/out) اعمال میشود و ممکن است پیامها بر اساس نیازهای کسب و کار، پیش از آن که به سیستمهای مصرفکننده تحویل داده شوند، غنی سازی و سفارشی سازی شوند.
انتقال و تبدیل پروتکل (Transportation/Protocol Conversion): انتقال پیام بین چندین سیستم یکی از قابلیتهای اصلی گذرگاه ESBاست و هسته اصلی معماری ESB به شمار میرود. به علاوه در هنگام انتقال پیامها میان سیستمها، گذرگاه ESBمسئول تبدیل پروتکلها میباشد تا با مکانیزم انتقال بخشهای ادغام شده مطابقت داشته باشد.
سازگاری غیر عملکردی (Non-Functional Consistency): ESBهای مدرن مجهز به ویژگیها و قابلیتهای اضافی خاصی از جمله ویژگیهای امنیتی، ماژولهای نظارت (monitoring) و مدیریت و توانایی ارائه استقرارهای مقاوم در برابر خطا و با دسترسپذیری بالا هستند.
IBM Integration Bus
با استفاده از گذرگاه یکپارچه سازی IBM (IBM Integration Bus) میتوان اپلیکیشنها را، صرف نظر از فرمتهای پیام یا پروتکلهایی که پشتیبانی میکنند، به یک دیگر متصل کرد. در این ارتباط اپلیکیشنها میتوانند در یک زیر ساخت انعطاف پذیر، پویا و قابل توسعه با یک دیگر تعامل داشته باشند و دادهها را مبادله کنند. گذرگاه یکپارچه سازی IBM، پیامها را از یک مکان به مکان دیگر مسیریابی، تبدیل و غنی سازی میکند. این محصول از بسیاری از پروتکلها شامل WebSphere® MQ، JMS، HTTP و HTTPS، وب سرویسهای SOAP و REST، سیستمهای اطلاعات سازمانی (SAP و Siebel)، و TCP/IP پشتیبانی میکند. به علاوه این محصول از رنج وسیعی از فرمتهای داده شامل فرمتهای باینری (C و COBOL)، XML، و استانداردهای صنعتی (SWIFT، EDI، و HIPAA) پشتیبانی میکند. همچنین شما میتوانید فرمتهای داده خودتان را در این محصول تعریف کنید.
Oracle Service Bus
گذرگاه سرویس Oracle یک جزء اساسی از مجموعه محصولات معماری سرویسگرای Oracle است. گذرگاه سرویس Oracle معماریهای پیچیده و شکننده را از طریق اتصال، مجازی سازی، و مدیریت تعامل بین سرویسها و اپلیکیشنها شبکههای یکپارچه سازی چابک (agile) تبدیل میکند. این گذرگاه سرویس یکپارچهسازی مبتنی بر استاندارد و کم هزینه را برای محیطهای حیاتی معماری سزویس گرا (SOA)، که در آنها کارایی، مقیاس پذیری و قابلیت اطمینان از نیازمندیهای ضروری هستند، ارائه میدهد. سرویسدهندهی این گذرگاه از پروتکلهای بسیاری شامل HTTP، SOAP، JMS، JCA و WSIF پشتیبانی میکند.
Apache ServiceMix
Apache ServiceMix یک گذرگاه سرویس سازمانی (ESB) توزیع شده است که بر اساس مشخصاتJava Business Integration (JBI) JSR 208 ساخته شده است و تحت لیسانس Apache میباشد. این گذرگاه open source است. گذرگاه سرویس سازمانی Apache ServiceMix عملکرد معماری سرویسگرا (SOA) و ماژولار بودن (modularity) را ترکیب میکند. در این گذرگاه از پیامها برای اتصال سرویسها و از رابطها برای تبادل اطلاعات از طریق پروتکلهای متفاوتی مانند FTP، HTTP، وب سرویسها و ... استفاده میشود. ServiceMix به منظور فراهم کردن کنترل از راه دور، خوشهبندی و شکست توزیع شده از ActiveMQ استفاده میکند. ServiceMix از همهی بخشهای JBI پشتیبانی میکند و شامل بسیاری از مؤلفههای JBI ازجمله HTTP، JMX، CFX، BPEL و غیره میباشد.
WSO2 ESB، Mule ESB، Fuse ESB، و Microsoft Azure Service Bus نیز نمونههای دیگری از گذرگاههای سرویس سازمانی میباشند.
شرکت دادهپرداز پویای شریف، شرکت پلکتو، شرکت پارس سیستم، شرکت کاریز سیستم پویا، و شرکت آیکن (آینده کاوان کهکشان نرمافزار) از جمله شرکتهای ایرانی هستند که در زمینه گذرگاه سرویس سازمانی فعالیت میکنند.
این مطلب، بخشی از تمرینهای درس معماری نرمافزار در دانشگاه شهیدبهشتی است.
منابع:
https://www.brcline.com/blog/what-is-an-enterprise-service-bus
https://medium.com/@rmzoni/what-is-the-future-of-an-enterprise-service-bus-esb-a4abd6cf0054
https://www.ibm.com/docs/en/integration-bus/10.0?topic=overview-integration-bus-introduction
https://www.oracle.com/middleware/technologies/service-bus.html
https://servicemix.apache.org/docs/6.x/user/what-is-smx4.html