ESB مخفف عبارت Enterprise Service Bus به معنی درگاه خدمات سازمانی است و اساساً یک معماری سازمانی برای ایجاد زیرساخت تبادل اطلاعات داده ها بین انواع نرم افزارها محسوب می شود. این معماری و زیرساخت نرم افزاری، از مجموعه قوانین و مقرراتی تشکیل شده که به نرم افزارها و سرویس های نرم افزاری مختلف با تنوع زبان، تکنولوژی و پلتفرم، اجازه تبادل اطلاعات با یکدیگر در یک بستر ایمن و قابل مدیریت می دهد که در نهایت منجر به ایجاد درگاه یکپارچه سازمانی برای تبادل اطلاعات نرم افزارهای درون سازمانی با یکدیگر یا با نرم افزارهای برون سازمانی می شود.
ESB چگونه عمل می کند؟
پیاده سازی ESB معمولا از طریق نرم افزار ESB انجام می شود و به کاربران اجازه می دهد با شیوه ها و امکانات مختلف، درگاه خدمات سازمانی را پیاده سازی کنند. در این روش، هر نرم افزار به یک درگاه واسط متصل شده و امکان تبادل اطلاعات بین نرم افزار و درگاه بر اساس استانداردهایی ایجاد می شود تا از این پس نرم افزار با درگاه واسط تبادل اطلاعات داشته و ارتباط برقرار کند.
به همین صورت کلیه نرم افزارها و سرویس های نرم افزاری، تبادل داده ها را با درگاه واسط انجام می دهند و در این فرایند وابستگی بین نرم افزارها بصورت مستقیم حذف می شود. با حذف این وابستگی، عملا نرم افزارها بدون نیاز به دانش مربوط به زبان و ساختار نرم افزار دیگر و بدون نیاز به آگاهی از اطلاعات سیستمی و ساختاری، نسبت به تبادل اطلاعات با یکدیگر اقدام می کنند و این فرایند در یک بستر مدیریت شده با قابلیت نظارت و کنترل انجام می شود.
در این وضعیت، نیاز به کد نویسی ها متعدد و رعایت انواع استانداردهای مربوط به زبان ها و معماری های موجود نسل های مختلف نرم افزارها و نگهداری و بروزرسانی پرهزینه این موارد حذف شده و دیگر نیازی نیست با حذف یا اضافه شدن یک نرم افزار یا سرویس در جمع نرم افزارهای فعال در سازمان، نگران نیاز به تغییرات اساسی یا بازبینی تعداد زیادی سرویس برای بررسی امکان سازگاری یا عدم ارتباط شد.
در واقع به دلیل همین پیچیدگی های فراوان جهت ایجاد ارتباط مستقیم بین نرم افزارها و سختی های نگهداشت و توسعه این ارتباطات همزمان با توسعه سازمان، شکل گیری مفهوم ESB و بلوغ و فراگیری آن در سازمان های بزرگ اتفاق افتاد. قبل از وجود ESB برای ایجاد ارتباط بین نرم افزارها از کدهای اختصاصی برای هر نرم افزار استفاده می شد که با افزایش تعداد نرم افزارها و در نتیجه افزایش تعداد این نوع کدها، عملا امکان مدیریت مرکزی و اشکال یابی از بین می رفت و به اصطلاح وضعیت Spaghetti Code برای سازمان ایجاد می شود که فارغ از مشکلات اشاره شد، امکان توسعه را برای سازمان غیرممکن می کرد.
چرا ESB برای سازمان ها و شرکت ها مهم است؟
فرایند پیشرفت و توسعه سازمان ها امروزه به میزان قابل توجهی به چابکی سازمان ها وابسته است و بخش مهمی از چابکی سازمان ها وابسته به وجود زیرساخت نرم افزاری مناسب است. یک زیرساخت نرم افزاری خوب و کارآمد در سازمان، امکان دسترسی لحظه ای به اطلاعات و داشبوردهای اطلاعاتی را برای مدیران و تصمیم گیران سازمان فراهم می کند و همزمان دغدغه ها و نگرانی های مربوط به مسائل فنی نرم افزارها را از ذهن مدیران و کارشناسان دور کرده و فرهنگ منابع انسانی سازمان را به رویکرد تفکر برای بهبود و توسعه تغییر می دهد.
در این حالت مدیران و کارشناسان به جای اتلاف منابع ناشی از مشکلات نرم افزاری و زیرساختی، با اتکا به نرم افزارها و زیرساخت های قابل اعتماد، تمرکز و توجه خود را به خلاقیت و نوآوری در راستای بهبود فردی و سازمانی و در نتیجه بهبود عملکرد سازمان خود معطوف می کنند و حتی در صورت بروز مشکلات، از ابزارها و امکانات مناسب برای شناسایی و رفع سریع مشکل مربوطه برخوردارند.
روش انتخاب یک نرم افزار ESB مناسب برای شرکت یا سازمان
نرم افزارها و ابزارهای متعددی برای پیاده سازی ESB در شرکت یا سازمان در بازار وجود دارند که از نظر قدرت، توانایی، تکنولوژی، زبان و معماری بسیار متفاوت هستند. برخی از نرم افزارهای ESB توسط شرکت های بزرگ و برند بازار ایجاد شده اند که خودشان نیز از آن استفاده می کنند و برخی دیگر توسط شرکت های متخصص در یک حوزه خاص یا گروه های نرم افزاری توسعه دهنده نرم افزارهای متن باز با هدف کسب تجربه و کاهش هزینه ها آماده شده اند.
در این شرایط و با توجه به وجود طیف گسترده محصولات نرم افزاری با تنوع بسیار زیاد قیمتی و تفاوت زیاد در فناوری و کاربردها، انتخاب نرم افزار ESB مناسب برای شرکت ها و سازمان متقاضی پیاده سازی ESB بسیار سخت است. دیدن دمو و بررسی رزومه شرکت های ارائه دهنده نیز در بسیاری از مواقع کمکی به انتخاب بهتر نمی کند و با توجه به اینکه هر شرکت سعی در بزرگنمایی نقاط قوت خود در رزومه اجرایی قابل اثبات خود دارد، مشاهده دمو و بررسی مشتریان به تنهایی کافی نیست.
یک نرم افزار یا پلتفرم ESB خوب بهتر است از حداقل ۵ ویژگی مهم برخوردار باشد.
۱) سبکی و چابکی
یک سیستم ESB برای اینکه بتواند سریع و راحت نسب و پیاده سازی شود، باید ابتدا سبک و کم حجم باشد. حجم کم یک سیستم به خصوص در نرم افزارهای ESB به خاطر معماری صحیح و استفاده درست از آخرین تکنولوژی های نرم افزار ی است و تنها چنین سیستمی می تواند ضمن وارد کردن کمترین میزان فشار به منابع سرور، حجم زیاد درخواست ها را به سادگی و سریع مدیریت کند. سبکی و چابکی همچنین میزان وقت و منابعی که سازمان باید برای ایجاد تغییرات یا بروزرسانی صرف کند را کاهش داده و در نتیجه در بلند مدت، هزینه های سازمان را به شدت کاهش می دهد.
۲) جامعیت و ساختار ماژولار
بسیاری از نرم افزارهای و پلتفرم های موجود در بازار صرفا به عنوان یک واسطه عمل می کنند و درخواست ها توسط آنها به سرورهای مختلف با نرم افزارهای مختلف برای بررسی و تبدیل ارسال می شوند. یک نرم افزار مناسب ESB باید کلیه امکانات و ابزارهای لازم برای مدیریت درخواست ها را بصورت ماژولار در خود داشته باشد و همه فرایندهای مدیریت ارتباطات نرم افزارهای سازمان را یکجا انجام دهد.
برخورداری از سیستم ماژولار این امکان را برای سازمان فراهم می کند که در صورت عدم نیاز به ویژگی ها یا امکانات خاصی، آنها را موقتا غیرفعال کرده و در مصرف منابع سرور و سازمان صرفه جویی کند. همچنین در صورت نیاز به پیاده سازی ابزار جدید می توان به تعداد مورد نیاز بصورت ماژول های جدید، سیستم ESB را توسعه داد و در فرایند توسعه، سایر قسمت های یک سیستم ماژولار دچار اختلال نمی شود.
۳) دسترسی و توسعه آسان
یکی از مهمترین ویژگی های یک پلتفرم مناسب ESB برای یک سازمان یا شرکت، امکان استفاده آسان برنامه نویسان و توسعه دهندگان نرم افزارها از آن پلتفرم است. با توجه به اینکه تولیدکنندگان و توسعه دهندگان نرم افزارهای مختلف جزو کاربران اصلی نرم افزارهای ESB هستند، بسیار مهم است که به سادگی با مطالعه داکیومنت های سیستم، ضمن یادگیری سریع به دلیل سادگی و گویایی، بتوانند سریعا با آن ارتباط برقرار کرده و با استفاده از استانداردهای ارائه شده، درک دقیقی از نحوه ارتباط با درگاه پیدا کنند.
این ارتباط موجب پیاده سازی سریع مبدل ها و به تبع توسعه سریع سیستم می شود. استفاده از زبان های برنامه نویسی رایج و پرطرفدار و روش های پیاده سازی ساده، گویا و پراستفاده در نرم افزار ESB می تواند موجب محبوبیت و کارایی بهتر یک پلتفرم ESB برای برنامه نویسان شود.
۴) انعطاف و مقیاس پذیری
امکان توسعه سریع بصورت عمودی و افقی مطابق با توسعه سازمان و شرکت یکی از ویژگی های مهم پلتفرم یا نرم افزار ESB مناسب است. همزمان با توسعه سازمان، ممکن است انواع نرم افزارها یا اپلیکیشن ها به سبد نرم افزارهای مورد استفاده در شرکت یا سازمان اضافه شوند، لذا امکان پیاده سازی و اتصال به ESB در حالات مختلف در نرم افزارها و اپلیکیشن های جدید، چه در مرحله توسعه و چه در مرحله تست بسیار برای سازمان اهمیت دارد. از سوی دیگر با نفوذ روزافزون تکنولوژی های نوین نظیر AI در همه عرصه های زندگی، شاهد تنوع گسترده ای از ارائه سرویس های نرم افزاری جدید با ماهیت های SaaS و PaaS هستیم و همه است که پلتفرم ESB از انعطاف پذیری بالایی جهت انطباق با سیستم های نوظهور برخوردار باشد.
۵) سرویس مبتنی بر پیام
یکی از مهمترین و قدرتمندترین بخش های سیستم ESB، بخش تبادل پیام بین نرم افزارها بر اساس استانداردهای نظیر XML است. اما یک سیستم ESB خوب و کامل لزوما به یک استاندارد وابسته و محدود نیست و می تواند از استانداردهای پرکاربرد و پرطرفدار روز نظیر JSON یا متن خالص یا Binary و ... نیز پشتیبانی کند و امکان انتخاب را برای سازمان فراهم کند. در واقع مهم این است که سیستم ESB به برنامه نویسان و توسعه دهندگان سازمان اجازه دهد همزمان با مطابقت با استانداردها، استاندارد مناسب وضعیت جاری سازمان را انتخاب و پیاده سازی کنند.
الزمات پیاده سازی ESB در سازمان ها و شرکت ها
اجرای رویکرد معماری ESB در سازمان از قوانین و مقرراتی تبعیت می کند که رعایت آنها در نهایت موجب پیاده سازی صحیح ESB شده و در نتیجه به چابکی و توسعه سازمان کمک می کند. در این راستا، ابتدا جداسازی اتصال و ارتباط مستقیم دو نرم افزار یا سرویس نرم افزاری با یکدیگر اتفاق می افتد که البته قبلا جایگزین مناسب برای ارتباط این دو سیستم با یکدیگر از طریق یک بستر مدیریت شده و پایدار ایجاد شده و با حذف مدل قبلی و برقراری مدل جدید ارتباط بین سیستم ها، این فرایند کامل می شود.
فرایند تغییر روش ارتباط، دارای ویژگی های مختلفی است. برخی از مهم ترین ویژگی های این فرایند عبارتند از:
- ارتباطات بین نرم افزاری از طریق یک سرور تبادل پیام مانند JMS یا AMQP انجام می شود
- اطلاعات ارسالی و دریافتی طبق استاندارد شناخته شده ای مانند XML تبادل می شوند
- بین نرم افزار و درگاه، یک مبدل وجود دارد که انتقال داده ها را مدیریت می کند
- تبدیل درخواست ها و داده ها و بررسی امنیت تبادل اطلاعات توسط مبدل انجام می شود
- پیام های جداگانه بابت وظیفه و وضعیت در ESB ها وجود ندارد و در هر پیام مستتر است
- زبان تبادل پیام به کلیه نرم افزارها و درگاه یکسان است و همگی از یک ساختار تبعیت می کنند
با در نظر گرفتن همه جوانب مطرح شده فنی و ساختاری، در نهایت پیاده سازی ESB و حرکت به سمت استانداردسازی تبادل اطلاعات درون و برون سازمانی، مزایای بسیاری برای سازمان به ارمغان می آورد که از مهمترین آنها می توان به مدیریت پذیر شدن سیستم، ایمنی بسیار بالا، سرعت و چابکی و شفافیت عملکرد اشاره کرد که همه اینها با هم می تواند ضمن کاهش چشمگیر هزینه های پیدا و پنهان سازمان، سرعت پیشرفت و توسعه سازمان را چند برابر کنند.