مقدمه
شاید برای اولین بار است که این اصطلاح را می شنوید، اما ایده جدیدی نیست. گذرگاه خدمات سازمانی (ESB) که امروزه می شناسیم، در ابتدا توسط معمار گرگور هوپ در سال 2000 طراحی شد. و آن را روتر خدمات سازمانی نامید.
و برای مدت طولانی این مفهوم درباره(ESB) به کار میرفت . با توجه به اینکه شرکتها در تلاش هستند سیستمهای خود را چابکتر و پاسخگوتر به تغییرات در بازار کنند، ESB نیزمحبوبتر میشود.اساساً، کاری که(ESB) انجام می دهد کمک به اتصال دو بخش مختلف یا فرآیندهای تجاری با یکدیگر است تا بتوانند با استفاده از داده های مشترک با یکدیگر ارتباط برقرار کنند. هدف یک گذرگاه خدمات سازمانی ایجاد ارتباط بین سرویسهای فناوری اطلاعات و برنامههای کاربردی مختلف در سازمان شما بدون نیاز به تغییر کد است.
یک ESB (Enterprise Service Bus) به شما امکان می دهد برنامه ها و سرویس های متفاوتی را که سازمان شما را اداره می کنند یکپارچه کنید. با اتصال همه این مؤلفه ها از طریق یک ESB، کار سخت ادغام نقطه به نقطه کدنویسی سفارشی را حذف می کنید. به این ترتیب، یک ESB یک ستون فقرات ایمن، سریع و قابل اعتماد برای زیرساخت فناوری اطلاعات شما فراهم می کند.
با این حال، مهم است که به یاد داشته باشید که ESB تنها راه حل یکپارچه سازی برنامه نیست. شرایط خاصی وجود دارد که در آن یک iPaaS (سکوی ادغام به عنوان یک سرویس) می تواند به عنوان جایگزین ESB ارزان تر و با استفاده آسان تر عمل کند.
گذرگاه خدمات سازمانی (ESB)در مقابل SOA
در حالی که یک ESB (Enterprise Service Bus) به عنوان یک معماری نرمافزاری شناخته میشود که میتواند چندین برنامه را در یک زیرساخت واحد ادغام کند، SOA یک معماری سرویسگرا است که برای ایجاد برنامههای کاربردی تجاری که عمدتاً بر توسعه مبتنی بر خدمات تمرکز دارند، استفاده میشود. اگرچه هر دو معماری نرم افزاری هستند، ESB به عنوان ستون فقرات یک معماری SOA عمل می کند. SOA امکان تعامل سرویس های جدا شده با یکدیگر را فراهم می کند. تنها راهی که این تبادل داده امکان پذیر است، از طریق ESB است. به عبارت دیگر، ESB ابزاری است که برای یکپارچه سازی برنامه ها استفاده می شود و برای دستیابی به ایده ها و اصولی که در واقع SOA را تشکیل می دهند، استفاده می شود.
گذرگاه خدمات سازمانی (ESB)چگونه کار می کند؟
قبل از ESBها، کسبوکارها با یکپارچهسازی برنامههای کاربردی با کد سفارشی و نقطه به نقطه مشکل داشتند. این ادغام های نقطه به نقطه منجر به آشفتگی، "کد اسپاگتی" و به سختی باز کردن وابستگی های برنامه شد. امروزه یک ESB این چالش ها را با خدمت به عنوان یک گذرگاه ارتباطی پایدار بین برنامه ها حذف می کند.
و (ESB)از طریق مجموعهای از آداپتورهای نرمافزاری از پیش ساختهشده، که یک راهحل یکپارچهسازی برنامه «قابل اتصال» را ایجاد میکند، به این امر دست مییابد - راهحلی که ادغام برنامههای جدید، ارتقای سیستم و رشد کسبوکار را تسهیل میکند. یکی دیگر از مزایایESB ها سرعت آنها است که به اندازه کافی سریع است تا از یکپارچه سازی داده های بلادرنگ پشتیبانی کند.
یک ESB معمولی دارای اجزا و ویژگی های زیر است:
زمان صحیح استفاده از ESB
مهمترین موارد استفاده برای ESB به شرح زیر است:
چه زمانی نباید از ESB استفاده کنید؟
در اینجا به مواردی که نباید از ESB استفاده کنید، اشاره میکنیم:
انتخاب پلتفرم مناسب برای ESB
انتخاب پلت فرمESB باید بر اساس نیازهای سازمان شما باشد. پس از اینکه نیازهای شرکت از پیش تعریف شد، ارزیابی اینکه کدام پلتفرم بهترین انتخاب خواهد بود آسان تر می شود.
اغلب اوقات، راه حل های اختصاصی مشابه هستند و دقیقاً با پلتفرم های ESB ارائه شده توسط رقبای منبع باز شناسایی می شوند.
قبل از تصمیم گیری باید معیارهای زیر را در نظر گرفت:
فناوری iPaaSیک جایگزین ESB
یکپارچهسازی پلتفرم بهعنوان سرویس(iPaaS) یک راهحل یکپارچهسازی اپلیکیشن است که میتواند مکمل یا جایگزین ESB در هنگام ادغام پلتفرمهای مبتنی بر ابر، برنامههایکاربردی وب، برنامههای تلفن همراه، دستگاههای IoT و موارد دیگر باشد. هنگامی که یک iPaaS برای مورد استفاده شما مناسب است، از مزایای زیر بهره مند خواهید شد:
موارد استفاده اصلی برایiPaaS :
1. یکپارچهسازیهای نرمافزار بهعنوان سرویس: یک«ESB ابری» پلتفرمهای SaaS مبتنی بر ابر شما را با یک پروتکل پیامرسانی پیچیده مانندMOM (میانافزار پیامگرا) یکپارچه میکند. با این حال، iPaaS ادغامهای یکسانی را با استاندارد پیامرسانی سبکتر مانند JSON، REST وAPI انجام میدهد و راهاندازی ادغامهایiPaaS را راحت، ایمن و آسانتر میکند.
2. یکپارچهسازی چند اجارهای نرمافزار: چند مستاجری نرمافزار - یا معماری چند مستاجر - زمانی است که یک نمونه نرمافزاری واحد روی یک سرور کار میکند در حالی که به چندین بخش خدمات میدهد. در حالی که یکESB برای مدیریت پیچیدگی معماری چند مستاجر تلاش می کند، یک iPaaS می تواند افزونگی یکپارچه سازی را کاهش دهد و در عین حال نیازمندی های سخت افزاری و نرم افزاری شما را کاهش دهد.
3. یکپارچهسازی برنامههای کاربردی: برنامههای ویژه معمولاً مبتنی بر ابر، برنامههای SaaS هستند و به راحتی بدون دخالت فناوری اطلاعات راهاندازی میشوند. با این حال، شما همچنان باید آنها را ادغام کنید. راهاندازی اتصالESB به تخصص فنی گسترده نیاز دارد، اما هر کسی میتواند از iPaaS برای ادغام برنامههای SaaS موقت در چند دقیقه استفاده کند.
4. ادغام برنامه های تلفن همراه اینترنت اشیا(IoT): ویژگی های iPaaS - مانند استانداردهای پیام رسانی سبک تر (JSON، REST، وAPI)، تأخیر کم، اتصالات بلادرنگ، و پشتیبانی از ادغام های خارجی- مقیاس پذیری افقی را فراهم می کند. برای اتصال شبکه ای از برنامه ها و دستگاه های IoT مورد نیاز است. در بیشتر موارد، ESB برای پاسخگویی به این نیازها بسیار کند و سنگین است.
معرفی ابزار
پلتفرم MuleSoft Anypoint (ESB/iPaaS)
پلتفرم Anypoint MuleSoft یک راه حل ترکیبی ESB/iPaaS برای اتصال و ادغام شبکه شما از برنامهها، دادهها و دستگاههای IoT در محل یا مبتنی بر ابر است. این پلتفرم به توسعهدهندگان این امکان را میدهد تا برنامههای کاربردی جدید را بدون توجه به فناوری - خواه JDBC، JMS، خدمات وب، HTTP یا چیزهای دیگر، سریع و آسان ادغام کنند.
اگرچه MuleSoft یک پلت فرم غنی از ویژگی ها است، اما با منحنی یادگیری شیب دار همراه است. قبل از اینکه توسعهدهندگان بتوانند از پلتفرم با ظرفیت کامل خود استفاده کنند، به آموزش گسترده و تجربه کدنویسی نیاز دارند - چیزی که با راهحل iPaaS مانند DreamFactory که به شما امکان میدهد فوراً APIهای REST را از طریق یک رابط بدون کد ایجاد کنید، لازم نیست.
در نهایت، MuleSoft گران است و صدها هزار دلار در سال (و گاهی اوقات میلیون ها) هزینه دارد. با این حال، اگر نیاز به پشتیبانی از استانداردهای پیام رسانی قدیمی، سیستم های قدیمی در محل، برنامه های کاربردی مبتنی بر ابر یا ادغام یک زیرساخت پیچیده فناوری اطلاعات سازمانی دارید، این هزینه ها ممکن است ارزشش را داشته باشد.
ابزار IBM App Connect
ابزار IBM App Connect یکی دیگر از ESB/iPaaS هیبریدی با قابلیتهای مشابه با پلتفرم MuleSoft Anypoint است. به عنوان یک پلت فرم ترکیبی، IBM App Connect اتصالات فوری را برای برنامهها، دادهها، سیستمهای قدیمی، پلتفرمهای مبتنی بر ابر و دستگاههای IoT ارائه میکند. همچنین به کاربران امکان می دهد API های REST ایجاد کنند، اما این فرآیند به کدگذاری دستی گسترده نیاز دارد. در نهایت، IBM App Connect انواع سبکهای یکپارچهسازی، مانند کپی/همگامسازی دادههای دستهای زمانبندیشده، مبتنی بر رویداد و برنامهریزیشده را به اضافه صدها کانکتور برنامه از پیش ساخته شده، دارد.
درست مانند پلتفرم MuleSoft Anypoint، IBM App Connect نشان دهنده سرمایه گذاری مالی و آموزشی قابل توجهی است قبل از اینکه بتوانید از طیف گسترده ای از قابلیت های آن استفاده کنید. در صورت نیاز، تواناییهای این پلتفرم بیش از هزینههای خود را پرداخت میکنند، اما زمانی که آنها ضروری نیستند، در نظر بگیرید که آیا یک پلتفرم ارزانتر iPaaS میتواند نیازهای یکپارچهسازی اپلیکیشن شما را برآورده کند یا خیر.
نتیجه
گذرگاه خدمات سازمانی یا ESBها - مانند MuleSoft Anypoint و IBM App Connect - میتوانند یکپارچهسازی برنامههای کاربردی پایدار را ارائه دهند و در عین حال به عنوان ستون فقرات "قابل اتصال" به زیرساخت فناوری اطلاعات شما عمل کنند. با این وجود، اگر برنامههای مبتنی بر ابر، برنامههای تلفن همراه، دستگاههای IoT یا داشبوردهای وب را ادغام میکنید، فناوری iPaaS میتواند راهحل سادهتر و کمهزینهتری ارائه دهد. همچنین، این واقعیت که یک iPaaS پیشرفته مانند DreamFactory می تواند فوراً API های REST بدون هیچ گونه کدنویسی ایجاد کند، یک مزیت متمایز است.
معرفی چند شرکت ایرانی که در این زمینه فعالیت دارند:
· شرکت دانش بنیان پلتکو
ارائه دهنده خدمات تخصصی در حوزه وب سرویسها میباشند. این خدمات در چند زمینه مختلف نظیر یکپارچه سازی ، نظارت و گزارش دهی به سازمانها ارائه میشود. پلتفرم پلتکو مطابق با دانش روز دنیا پیاده سازی شده و کارشناسان ارشد ما تلاش کرده اند تا کلیه نیازهای بومی سازمان ها در آن گنجانده شود.
· شرکت دانش بنیان داده پرداز پویای شریف
فعالیت خود را بیش از یک دهه باهدف تولید و توسعه سامانه های تحت وب و موبایل همچون پرتالهای سازمانی، پلتفرم یکپارچه سازی برنامه های کاربردی، پلتفرم جامع مدیریت پروژه شبکه های رادیویی، انواع اپلیکیشن های موبایل و ... آغاز نموده است. این شرکت از ابتدای تاسیس با به کارگیری استانداردهای تولید نرم افزار و به پشتوانه نیروهای متخصص توانسته پروژه های موفق بسیاری را انجام دهد..سامانهESB دادهپرداز بستری است یکپارچه، توسعهپذیر و مناسب برای مدیریت جریانهای اطلاعاتی بین برنامههای کاربردی سازمانی.
«این مطلب، بخشی از تمرینهای درس معماری نرمافزار در دانشگاه شهیدبهشتی است»
منابع
https://blog.dreamfactory.com/what-is-an-esb-and-its-alternatives/
https://www.itcentralstation.com/categories/enterprise-service-bus-esb
https://www.ibm.com/topics/esb