گذرگاه  خدمات سازمانی (ESB)چیست و جایگزین های آن کدامند؟

مقدمهشاید برای اولین بار است که این اصطلاح را می شنوید، اما ایده جدیدی نیست. گذرگاه خدمات سازمانی (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 از ارتباط مستقیم برنامه‌ها با یکدیگر از طریق یک واسطه پیام (معمولا AMQP یا JMS )جلوگیری می‌کند. کارگزار پیام استانداردی را ایجاد می کند که ESB از آن برای ارسال و دریافت پیام در درون خود استفاده می کند.فرمت پیام رسانی متعارف (معمولاً XML ): پیام هایی که از ESB عبور می کنند در قالب متعارف (سازگار) هستند - معمولاً XML. این امر باعث ایجاد ثبات در هنگام درخواست مسیر از طریق اتوبوس می شود. برخی ازESB ها فرمت های پیام رسانی اضافی را مجاز می دانند - مانند JSON، فایل های مسطح، باینری، اشیاء جاوا و موارد دیگر آداپتورهای نرم افزار: ESB از آداپتورهای نرم افزاری برای تبدیل پیام های برنامه به قالب پیام رسانی متعارف ESB (معمولاً XML) استفاده می کند. قبل از تحویل، ESB پیام ها را برای بار دوم به پروتکل برنامه دریافت کننده تبدیل می کند. ESB ها شامل مجموعه ای از آداپتورهای از پیش ساخته شده برای محبوب ترین پلتفرم ها، پروتکل ها و برنامه های قدیمی هستند. آداپتورها همچنین می توانند نظارت بر امنیت، مدیریت خطا، مسیریابی پیام و مدیریت تراکنش را انجام دهند.سرور بدون تابعیت: ESB ها معمولاً بدون تابعیت هستند. سرور بدون حالت از اطلاعات درخواست‌های قبلی استفاده نمی‌کند یا آن را حفظ نمی‌کند. در عوض، وضعیت را در پیام‌ها در مسیر عبور ازESB حفظ می‌کند. این بدان معناست کهESB ها پیام ها را فقط بر اساس اطلاعات ارائه شده در خود پیام پردازش می کنند.زمان صحیح استفاده از ESBمهمترین موارد استفاده برای ESB به شرح زیر است: ادغام بیش از دو سرویس یا برنامه: هنگام ادغام بیش از دو سرویس یا برنامه، یک ESB ساختار یکپارچه سازی برنامه ها را ساده می کند و اتصالات مطمئن، ایمن و اغلب فوری را فراهم می کند - در حالی که از درهم تنیدگی/وابستگی برنامه نیز جلوگیری می کند.یکپارچه سازی یک پلت فرم خدمات خارجی: هنگام ادغام یک پلت فرم خدمات خارجی، یکESB اتصال قابل اعتمادی را در حین مدیریت و کنترل تعهدات سطح خدمات برای به حداقل رساندن تأثیر تنظیمات قراردادهای خدمات شما فراهم می کند. تبدیل و ادغام چندین پروتکل ارتباطی: ESBها به ویژه در تبدیل چندین پروتکل به یک پروتکل خوب هستند - مانند تبدیلFTP و HTTP به SOAP یا ترکیب کردن SMTP، IIOP، MQ/JMS. آنها همچنین می توانند بسیاری از فرمت های داده های مختلف را مدیریت کنند. افزودن مکرر برنامه‌ها یا خدمات جدید: وقتی دائماً برنامه‌ها و سرویس‌ها را اضافه، تغییر یا ارتقا می‌دهید، «قابلیت اتصال» آداپتورهای از پیش ساخته شدهESB این تغییرات را تسهیل می‌کند.·یکپارچه سازی برنامه های قدیمی: ESB ها همچنین شامل انواع آداپتورهای از پیش ساخته شده برای ادغام برنامه های قدیمی با برنامه ها و خدمات مدرن هستند. زمانی که امنیت و قابلیت اطمینان اتصال مورد نیاز است: یک ESB راه ساده و ایمنی را برای اتصال و تبدیل پیام‌های تراکنش در حین عبور بین دو منبع داده متفاوت ارائه می‌کند. برخورد با پروتکل های خاص صنعت: هنگامی که نیاز به ادغام پروتکل های خاص صنعت با سیستم های دیگر دارید، ESB شما باید آداپتورهای از پیش ساخته شده ای را که پروتکل صنعتی شما به آن نیاز دارد، داشته باشد. به عنوان مثال، یک ESB می‌تواند پروتکل HL7 صنعت مراقبت‌های بهداشتی را با سایر برنامه‌های شما تبدیل و ادغام کند.چه زمانی نباید از ESB استفاده کنید؟در اینجا به مواردی که نباید از ESB استفاده کنید، اشاره می­کنیم:یکپارچه سازی حجم زیادی از داده ها: اگر شما نیاز به ارسال حجم زیادی از داده دارید - شاید در حین استخراج و بارگذاری داده ها از یک پایگاه داده یا انبار داده به دیگری - ESB شما جایگزین ابزارETL نمی شود. ESBها برای ادغام برنامه‌ها و پلتفرم‌ها ساخته شده‌اند که نیازی به انتقال داده‌های عظیم ندارند. یک پلت فرم ETL برای ادغام داده های با حجم زیاد مناسب تر است. پیاده سازی فرآیندهای کسب و کار حالت دار: اگر نیاز به پیاده سازی فرآیندهای تجاری طولانی مدت، حالت دار دارید، احتمالاً ESB مناسب نیست. شما می‌خواهید از BPMS (سیستم مدیریت فرآیند کسب‌وکار) استفاده کنید که پیاده‌سازی را از طریق BPMN (مدل و علامت‌گذاری فرآیند کسب‌وکار) یا BPEL (زبان اجرای فرآیند کسب‌وکار) ارائه می‌دهد.یکپارچه‌سازی برنامه‌های مبتنی بر ابر: اگر برنامه‌های مبتنی بر ابر، برنامه‌های کاربردی وب، داشبوردهای وب، برنامه‌های کاربردی تلفن همراه، شبکه‌ای از برنامه‌های اینترنت اشیا یا برنامه‌های SaaS را ادغام می‌کنید، باید به جای ESB یک iPaaS را در نظر بگیرید.انتخاب پلتفرم مناسب برای ESBانتخاب پلت فرمESB باید بر اساس نیازهای سازمان شما باشد. پس از اینکه نیازهای شرکت از پیش تعریف شد، ارزیابی اینکه کدام پلتفرم بهترین انتخاب خواهد بود آسان تر می شود.اغلب اوقات، راه حل های اختصاصی مشابه هستند و دقیقاً با پلتفرم های ESB ارائه شده توسط رقبای منبع باز شناسایی می شوند.قبل از تصمیم گیری باید معیارهای زیر را در نظر گرفت:· نصب: تعیین کنید که آیا نصب پلت فرم ESP مورد نظر شما آسان است، آیا به ابزار خاصی نیاز است یا خیر، یا اینکه محیط توسعه بصری است یا خیر· تبدیل پیام: به دنبال راه حلی باشید که هم بتواند پیام ها را وارد کند و هم فرمت های مختلف را تغییر دهد (مانندREST، EDI X12، JSON، CSV)· اتصال دهنده ها: مطمئن شوید که راه حل ESB شما می تواند اتصال یک سیستم به سیستم دیگر را انجام دهد زیرا کانکتورهای همراه بلوک های ساختمانی قابل استفاده مجدد هستند که مسئول ایجاد جریان داده از طریق گذرگاه هستند. اتصال دهنده ها همچنین باید دارای گزینه انتقال فایل با سرعت بالا باشند تا پیام ها به سرعت بین مکان ها منتقل شوند.· حفاظت های امنیتی: احراز هویت ایمن کاربر، مدیریت و انتقال فایل، دسترسی ایمن، رمزگذاری، مدیریت گواهی و سایر الزامات امنیتی از اهمیت بالایی برخوردار است که در نظر بگیرید کدام راه حل می تواند تمام نیازهای سازمان شما را برآورده کند.· پشتیبانی در دسترس: مهم است که مطمئن شوید خدمات مورد نیاز در دسترس است و بدانید چه گزینه هایی برای شما مناسب است (پشتیبانی ایمیل در مقابل در محل، ساعات کاری در مقابل خط تلفن 24 ساعته و غیره)· عملکرد: آیا پلتفرم ESB همه قابلیت هایی را که شرکت شما به آن نیاز دارد ارائه می دهد؟· نظارت: پلتفرم ESB که انتخاب می‌کنید باید بتواند به طور دقیق و کارآمد بر جریان داده‌ها نظارت کند و سازمان شما را قادر می‌سازد تا هر گونه مشکلی را سریع و آسان شناسایی کند.· سفارشی سازی: تصمیم بگیرید که آیا عملکردهای محصول به اندازه کافی انعطاف پذیر هستند تا با نیازهای سازمان شما مطابقت داشته باشند· مدل اشتراک: بیاموزید که پلتفرم ESB از چه مدل مجوز یا اشتراکی استفاده می‌کند و هنگام تغییر نیازمندی‌ها چه عواقبی دارد (CPU بیشتر، رایانه‌های بیشتر، ارتقاء و غیره).· مقیاس پذیری: پلت فرم ESB که تصمیم به استفاده از آن دارید باید گزینه های متعادل کننده بار و در دسترس بودن بالا را ارائه دهد تا بتوانید مقیاس کنید.· هزینه: هزینه کامل (هزینه مالکیت، هزینه های تعمیر و نگهداری، در صورت نیاز به محصولات جانبی اضافی، یا اتصال دهنده ها و غیره) را ارزیابی کنید.فناوری iPaaSیک جایگزین ESBیکپارچه‌سازی پلت‌فرم به‌عنوان سرویس(iPaaS) یک راه‌حل یکپارچه‌سازی اپلیکیشن است که می‌تواند مکمل یا جایگزین ESB در هنگام ادغام پلتفرم‌های مبتنی بر ابر، برنامه‌های­کاربردی وب، برنامه‌های تلفن همراه، دستگاه‌های IoT و موارد دیگر باشد. هنگامی که یک iPaaS برای مورد استفاده شما مناسب است، از مزایای زیر بهره مند خواهید شد:· سرعت، سهولت استفاده و مقرون به صرفه بودن: یک iPaaS شما را سریع‌تر راه‌اندازی می‌کند، بدون منحنی یادگیری، نیاز به نیروی انسانی، یا سرمایه‌گذاری‌های مالی بزرگ مرتبط با ESB .· ایجاد خودکار REST API: پیشرفته‌ترین راه‌حل‌های iPaaS - مانند DreamFactory iPaaS - می‌توانند فوراً APIهایREST را بدون نیاز به برنامه‌نویسی وقت‌گیر تولید کنند(کاری که راه‌حل‌های ESB بدون کدنویسی گسترده نمی‌توانند انجام دهند).· امنیت و انطباق بهتر: راه‌حل‌های iPaaS فناوری امنیت و مدیریت پیشرفته‌تری را نسبت به ESB ارائه می‌دهند.موارد استفاده اصلی برای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-esbhttps://www.ibm.com/topics/esb