اساساً یک معماری است. این مجموعه ای از قوانین و اصول برای ادغام برنامه های کاربردی متعدد با هم بر روی یک زیرساخت گذرگاه مانند است. محصولات ESB کاربران را قادر میسازد تا این نوع معماری را بسازند، اما در نحوه انجام آن و قابلیتهایی که ارائه میدهند متفاوت هستند. مفهوم اصلی معماری ESB این است که شما برنامه های مختلف را با قرار دادن یک گذرگاه ارتباطی بین آنها یکپارچه می کنید و سپس هر برنامه را قادر می سازید تا با گذرگاه صحبت کند. این سیستمها را از یکدیگر جدا میکند و به آنها اجازه میدهد بدون وابستگی یا آگاهی از سیستمهای دیگر در گذرگاه ارتباط برقرار کنند. مفهوم ESB به دلیل نیاز به دور شدن از ادغام نقطه به نقطه متولد شد که مدیریت آن در طول زمان شکننده و سخت میشود. ادغام نقطه به نقطه منجر به پخش کد یکپارچهسازی سفارشی در بین برنامهها بدون هیچ راه مرکزی برای نظارت یا عیبیابی می شود. این اغلب به عنوان "کد اسپاگتی" نامیده می شود و مقیاس نمی شود زیرا وابستگی شدید بین برنامه ها ایجاد می کند.
افزایش چابکی سازمانی با کاهش زمان برای بازاریابی برای ابتکارات جدید یکی از رایج ترین دلایلی است که شرکت ها ESB را به عنوان ستون فقرات زیرساخت فناوری اطلاعات خود پیاده سازی می کنند. یک معماری ESB با ارائه یک سیستم ساده و قابل اتصال، به خوبی تعریف شده، که مقیاس بسیار خوبی دارد، این امر را تسهیل میکند. علاوه بر این، یک ESB با استفاده از قابلیتهای ارتباطی و تبدیلی خود، راهی برای استفاده از سیستمهای موجود و قرار دادن آنها در معرض برنامههای جدید فراهم میکند.
پیاده سازی
معماری ESB دارای اصول کلیدی است که امکان چابکی و مقیاس تجاری را فراهم می کند. تمرکز اصلی این است که سیستمها را از یکدیگر جدا کنیم در حالی که به آنها اجازه میدهیم به روشی سازگار و قابل مدیریت ارتباط برقرار کنند.
مفهوم "گذرگاه" برنامه ها را از یکدیگر جدا می کند. این معمولاً با استفاده از یک سرور پیام رسانی مانند JMS یا AMQP به دست میآید.
دادههایی که در گذرگاه جابهجا می شوند فرمت متعارفی هستند و تقریبا همیشه XML هستند.
یک "آداپتور" بین برنامه کاربردی و گذرگاه وجود دارد که داده ها را بین دو طرف تنظیم می کند.
آداپتور مسئول مکالمه با برنامه کاربردی و تبدیل داده ها از فرمت برنامه به فرمت گذرگاه است. آداپتور همچنین می تواند مجموعه ای از فعالیت های دیگر مانند مدیریت تراکنش مسیریابی پیام، امنیت، نظارت، رسیدگی به خطا و غیره را انجام دهد.
ESB ها عموماً بدون تابعیت هستند. وضعیت در پیام هایی که از گذرگاه عبور میکنند تعبیه شده است.
قالب پیام متعارف قرارداد بین سیستم ها است. قالب متعارف به این معنی است که یک قالب پیام ثابت در گذرگاه وجود دارد و هر برنامه در گذرگاه می تواند با یکدیگر ارتباط برقرار کند.
اصول اصلی ادغام
1- ارکستراسیون: ترکیب چندین جزء ریزدانه موجود در یک سرویس ترکیبی مرتبه بالاتر. این را می توان برای دستیابی به "دانه دانه بودن" مناسب خدمات و ارتقای استفاده مجدد و مدیریت پذیری اجزای اساسی انجام داد.
2- تبدیل: تبدیل داده بین فرمت های داده متعارف و فرمت های داده خاص مورد نیاز هر کانکتور ESB. یک مثال از این می تواند تبدیل بین فرمت های CSV، Cobol copybook یا EDI به SOAP/XML یا JSON باشد. فرمتهای داده متعارف میتوانند الزامات تبدیل مرتبط با پیادهسازی بزرگ ESB را که در آن مصرفکنندگان و ارائهدهندگان زیادی وجود دارد، که هرکدام قالبها و تعاریف دادههای خاص خود را دارند، بسیار سادهتر کنند.
3- حمل و نقل: مذاکره پروتکل حمل و نقل بین چندین فرمت (مانند HTTP، JMS، JDBC). توجه: Mule با تبدیل کردن JDBC به انتقال (یا نقطه پایانی) دیگری که در آن می توان به داده ها دسترسی داشت، با پایگاه داده مانند «سرویس» دیگری رفتار می کند.
4- میانجیگری: ارائه چندین رابط به منظور الف) پشتیبانی از چندین نسخه از یک سرویس برای سازگاری با عقب یا به طور متناوب ب) اجازه دادن به کانال های متعدد برای اجرای یک مؤلفه زیربنایی. این نیاز دوم ممکن است شامل ارائه چندین رابط برای یک مؤلفه، یک رابط قدیمی (فایل مسطح) و یک رابط سازگار با استانداردها (SOAP/XML) باشد.
5- سازگاری غیرعملکردی: برای یک ابتکار معمولی ESB، این می تواند شامل سازگاری در مورد نحوه اعمال و اجرای سیاست های امنیتی و نظارت باشد. علاوه بر این، اهداف مقیاسپذیری و در دسترس بودن را میتوان با استفاده از نمونههای متعدد یک ESB برای افزایش توان عملیاتی (مقیاسپذیری) و حذف تکنقطههای شکست (SPOFs)، که هدف کلیدی برای سیستمهای بسیار در دسترس است، به دست آورد.
6- پیام آگنوستیک: یکی از ویژگی های قدرتمند Mule این است که کانتینر پیام آگنوستیک است. این بدان معناست که پیام های XML را به کاربران خود تحمیل نمی کند. در حالی که XML رایج است، سناریوهای زیادی وجود دارد که میخواهید از JSON، فایلهای مسطح، کتابهای کپی Cobol، پیوستهای باینری و فایل، جریانها و اشیاء جاوا استفاده کنید. نقشهبردار دادههای گرافیکی ما به همان اندازه در مورد دادههایی که میتوان نقشهبرداری کرد سر و صدا ندارد. علاوه بر این، Mule streaming به توسعه دهندگان اجازه می دهد تا پیام های بزرگ را به طور موثر پردازش کنند.
7- ابر آماده است: اگر ترجیح می دهید معماری برنامه، میزبانی و نظارت بر ادغام خود را به متخصصان ادغام بسپارید، CloudHub™ برای شما مناسب است. CloudHub یک پلتفرم یکپارچه به عنوان سرویس (iPaaS) است که شما را در عرض چند دقیقه راه اندازی می کند. CloudHub یک پلت فرم الاستیک و چند مستاجر با قابلیت اتصال به بیش از 150 SaaS، رسانه های اجتماعی و خدمات زیرساختی و امکان اتصال به برنامه های کاربردی داخلی شما ارائه می دهد. برنامه های CloudHub روی Mule مستقل اجرا می شوند و بالعکس. این بدان معناست که چه در حال استقرار در محل یا فضای ابری باشید، هیچ مفهوم جدیدی برای یادگیری وجود ندارد و تجربه توسعهدهنده یکسان است. نیازی به یادگیری روش جدیدی برای انجام کارها نیست.
1- پلتفرم Mule
پلتفرم های ESB زیادی وجود دارد، از فروشندگان بزرگ اختصاصی گرفته تا فروشندگان داخلی و منبع باز. روی کاغذ، شباهت های زیادی وجود دارد. در اینجا نکاتی وجود دارد که باید هنگام انتخاب ESB در نظر بگیرید.
سبک وزن: Mule سبکترین پلتفرم یکپارچهسازی موجود است، با توزیع کاملاً بارگذاری شده با وزن 40 مگابایت. از نظر طراحی ماژولار است، بنابراین در صورت نیاز به کاهش ردپا، می توانید ماژول های ناخواسته را حذف کنید. ما "سبک بودن" را فقط در مورد اندازه نمی بینیم. همچنین هزینه ایجاد تغییرات در ادغام های موجود و مقدار سنگینی که برای ایجاد تغییرات باید انجام دهید، می باشد.
زمان اجرای Mule: ماژولارسازی و استقرار سریع فوق العاده سریع و همچنین یک مدل پیکربندی را ارائه می دهد که سفارش مجدد و افزودن/تغییر عملکرد را آسان می کند. نه فقط میانجیگری اکثر فروشندگان ESB را صرفاً میانجی بین سیستم ها می دانند و محصولات جداگانه ای برای میزبانی منطق تجاری و خدمات انتشار دارند. ما این را پیچیدگی غیر ضروری می بینیم. Mule یک کانتینر خدمات سبک و مقیاس پذیر برای انتشار خدمات REST و SOAP ارائه می دهد. از آنجایی که Mule به شدت با Spring ادغام می شود، به این معنی است که توسعه دهندگان همچنین می توانند از قابلیت های Spring برای پیاده سازی منطق تجاری استفاده کنند.
قابل دسترس: هر توسعه دهنده ای می تواند Mule را یاد بگیرد. Mule از ابزارهای رایجی استفاده می کند که همه توسعه دهندگان جاوا با آن آشنا هستند، مانند Maven، Eclipse، JUnit و Spring. Mule از یک مدل پیکربندی XML (شبیه به Spring) برای تعریف منطق استفاده می کند و کد سفارشی را می توان به زبان های مختلفی از جمله جاوا، Groovy، JavaScript، Ruby یا Python نوشت. همچنین، Anypoint Studio به توسعه دهندگان جدید کمک می کند تا با یک محیط توسعه گرافیکی به سرعت به سرعت بالا بروند.
افزایش مقیاس، کاهش مقیاس: Mule برای مقیاس افقی در سخت افزار کالا طراحی شده است. زمان اجرا Mule به راحتی در یک برنامه جاسازی می شود. همچنین می تواند در سرور برنامه شما مانند Tomcat، JBoss یا WAS یا مستقیماً در برنامه شما تعبیه شود. مهمتر از آن، Mule پشتیبانی JUnit را فراهم می کند تا بتوان آن را در یک مورد آزمایشی JUnit جاسازی کرد. این قدرتمند است زیرا به این معنی است که می توانید تست های واحد تکرار شونده را برای ادغام هایی ایجاد کنید که روی یک لپ تاپ توسعه دهنده اجرا می شوند و می توانند در یک ساخت پیوسته گنجانده شوند.
2- پلتفرم JBoss Fuse
پلتفرم JBoss Fuse چیزی بیش از یک گذرگاه خدمات سازمانی (ESB) است. این یک پلتفرم ادغام متن باز سبک وزن است – بر اساس Apache ServiceMix – که در محل یا در فضای ابری در دسترس است. JBoss Fuse که بر اساس استانداردهای باز ساخته شده است، به جای تیم های کوچکی که معمولا کد منبع اختصاصی را حفظ می کنند، توسط جامعه بزرگی از توسعه دهندگان تقویت شده است.
ویژگی ها و مزایا:
Apache ActiveMQ: یک واسطه پیام منبع باز و سریع که از JMS و همچنین کلاینت های نوشته شده به زبان های دیگر مانند C و Python پشتیبانی می کند.
Apache Camel: یک چارچوب متن باز که پیاده سازی های آزمایش شده و واقعی EIPS (الگوهای یکپارچه سازی سازمانی) را ارائه می دهد. این به توسعهدهندگان اجازه میدهد تا از راهحلهای از پیش موجود برای چالشهای کدنویسی مرتبط با یکپارچهسازی سازمانی که اغلب با آنها مواجه میشوند، استفاده کنند.
Apache CFX: یک چارچوب خدمات وب منبع باز، که برای ارتباط با استفاده از استانداردهای مختلف مانند JAX-WS و JAX-RS، HTTP و FTP و همچنین فرمت های مختلف مانند JSON، XML، CSV و غیره فراهم می کند.
Apache Karaf: یک کانتینر زمان اجرا OSGI برای استقرار برنامه ها
Fabric8: یک ابزار ارکستراسیون برای استقرار میان افزارهای بزرگ
3- پلتفرم Oracle ESB
Oracle ESB بر اساس یک محصول قبلی اوراکل به نام Retail Integration Bus Essentials است. برای کمک به برقراری ارتباط بین محصولات موجود اوراکل و برنامه های شخص ثالث در نظر گرفته شده است.
ویژگی ها و مزایا
Oracle Message Broker: یک API سازگار با JMS که از AQ، IBM MQSeries، TIBCo Rendezvous و غیره پشتیبانی می کند.
سرویس مسیریابی: سرویسهای مسیریابی به سبک SOA که اجازه میدهد قوانین مسیریابی با WSDL تعریف و منتشر شوند.
آداپتورهای یکپارچه: مجموعه ای از آداپتورهای JCA که برای دانلود در دسترس هستند. اینها امکان ارتباط با پایگاه های داده، صف های پیام، برنامه های کاربردی مختلف سازمانی و پروتکل های مختلف را فراهم می کند.
سرور ESB: سرور زمان اجرا که به موضوعات برای به روز رسانی گوش می دهد.
کنترل ESB: اجازه می دهد تا تغییرات پیکربندی در زمان واقعی انجام شود.
1- شرکت دانشبنیان دادهپرداز پویای شریف
شرکت دانشبنیان دادهپرداز پویای شریف فعالیت خود را بیش از یک دهه باهدف تولید و توسعه سامانههای تحت وب و موبایل همچون پرتالهای سازمانی، سامانه یکپارچهسازی برنامههای کاربردی سازمانی، پلتفرم جامع مدیریت پروژه شبکههای رادیویی، توسعه قراردادهای هوشمند، طراحی اپلیکیشنهای موبایل و ... آغاز نموده است. این شرکت از ابتدای تاسیس با به کارگیری استانداردهای تولید نرمافزار و به پشتوانه نیروهای متخصص توانسته پروژههای موفق بسیاری را انجام دهد. همکاری با سازمانهای بزرگی همچون همراه اول، سازمان فناوری اطلاعات ایران، شرکت یونیلیور، کناف و ... طی سالیان متوالی با هدف رشد و توسعه تجارت ایشان از افتخارات داده پرداز میباشد.
شرکت دانشبنیان دادهپرداز پویای شریف ارائهدهنده راهکارهای تخصصی تحت وب میباشد که تاکنون خدمات پیچیدهای را به سهولت در اختیار مشتریان خود قرار دادهاست.
وجود تعداد بیشماری از پروژههای طراحی و برنامهنویسی وب در کارنامه ما نشان از توانمندی و تجربه در طراحی و برنامهنویسی سیستمهای پیشرفته تحت وب با منطقهای تجاری پیچیده و حجم زیادی از دادهها و معاملات است. این کوله بار علم و تجربه، ما را قادر ساخته تا کاربران وب را با راهحلهای نرمافزاری قابل اعتماد و خلاقانه همراهی کنیم تا بتوانند پیچیدهترین و غیرقابل تصورترین ایدههای کاری خود را به انجام برسانند.
دادهپرداز هم اکنون پس از فعالـیت به مدت یک دهه در زمینه "فناوری اطلاعات"، متشکل از یک تیم قدرتمند با متخصصین مجرب و حرفهای است تا بتواند خدماتی فراگیر از طراحی وبسایت سفارشی تا توسعه سیستمهای پیچیدۀ اینترنتی را بر پایه درک نیازهای تجاری و کــاری مشتریان و همچنین ارائه راهکارهای قابــل اعتماد، پیادهسازی نماید.
منطقی است که اجرای فرآیندهای کاری در هر حوزهای، امروزه وابسته به نرمافزارها و سیستمهای اطلاعاتی متنوعی است که هر کدام با تکنولوژی خاصی تهیه شدهاند. این برنامهها درسازمانها زمانی میتوانند موثر باشند که با یکدیگر ارتباط مناسبی داشته باشند. بنابراین چالشهای پیش روی سازمانها شناخته شدهاند! پلتفرم ESB داده پرداز یکی از بهترین راهکارها برای یکپارچه سازی انواع سرویسها در سازمانهای بزرگ و مدیریت نمودن جریان اطلاعات در آنهاست. پلتفرم ESB دادهپرداز محصولی دانشبنیان است که تا به امروز در سامانههای بزرگی همچون سامانه فروش بلیط بن ریل، اپلیکیشن خدمت در محل همراه یار، پرتال دولت الکترونیک و ... به کاربرده شده و ویژگی اصلی آن، توانایی برقراری ارتباط با ماکروسرویسهای بزرگ و برقراری جریان امنیت اطلاعات و مدیریت آنهاست.
2- پلتكو
در پلتکو با بهرهمندی از کارشناسان ارشد حوزه معماری زیر ساخت سرویس سازمانی و تجربه انجام پروژههای متعدد میتوان با ارائه یک مشاوره تخصصی و رایگان معضلات و مشکلات سازمان را شناسایی کرد و راهکارهای کارآمد که منجر به صرفه جویی مالی و زمانی می شود را معرفي كرد.
عدم استفاده از ESB باعث میشود تا با زیاد شدن سرویسهای سازمان و ارتباط دو به دو آنها با هم، یک ساختار پیچیده و در هم تنیده بوجود آید که علاوه بر خطرات احتمالی، مانع از توسعه آنها در آینده نیز خواهد شد. استفاده از گذرگاه خدمات سازمانی باعث میشود که با تغییر یک یا چند وب سرویس در سازمان، نیازی به اطلاع دادن به سرویس گیرندگان سازمان برای تغییر در نحوهی دریافت دادهها نباشد.
بنا بر ارتباط خوب و مستمر هیئت مدیره شرکت پلتکو با دانشگاه صنعتی شریف و دانش مناسب در زمینه زیر ساخت نرم افزار سازمانی، در سال 1396 پروژهای بنام پیاده سازی نرم افزار WSO2 برای یکی از سازمانهای بزرگ دولتی به شرکت پلتکو ارائه گردید که طی زمان بندی مشخص شده به خوبی تحویل کارفرما گردید.
پس از آن با مشاهدهی چالشهای گوناگون سازمانها در خصوص یکپارچهسازی، نظارت، تحلیل و مدیریت بر وبسرویسها و افزایش تجربه تیم فنی ما در این زمینه ، در سال 1397 ، شرکت پلتکو با رویکرد ارائهی راهحل اساسی برای این چالشها وارد فاز توسعه شد.
پلتکو با بهره گیری از کارشناسان ارشد تیم فنی خود که از نخبگان دانشگاه صنعتی شریف میباشند با مطالعه بازار و نیاز سنجیهای انجام شده، با محوریت نرم افزار WSO2، پلتفرم جامع یکپارچه سازی و مدیریت وب سرویس را طراحی و پیاده سازی نمود و با اتصال و ادغام چند نرم افزار به یکدیگر یک پلتفرم کارآمد برای رفع نیاز یکپارچه سازی، نظارت، تحلیل و مدیریت وب سرویس ها پیاده سازی نمود.
در این پلتفرم تکنولوژیهای قدیم و جدید مدیریت چرخه زندگی وب سرویس ادغام شده و به صورت یک خروجی واحد و کاملا شخصی سازی شده در اختیار سازمانها قرار داده میشود.
3- آيكن
گروه مهندسی آی کن با توجه به رسالت خود در ارائه محصولات زیرساختی برای سازمان ها و همچنین تجربه ای که طی دو دهه گذشته در مواردی مشابه بدست آورده است، اقدام به طراحی و ارائه راهکارهای جامع و مبتنی بر استانداردهای جهانی(ESB) در راستای ایجاد زیرساختی یکپارچه برای تعاملات نرم افزاری در سازمان ها نموده است.
یکپارچهساز آیکن (IIF) نقش گذرگاه ارتباطی بین نرمافزارها و سرویسهای سازمانی و فراسازمانی را ایفا میکند که به طور کلی مسئولیت مدیریت پیامهای بین نرمافزاری، مانیتورینگ، اعمال سطوح دسترسی، تغییر پروتکل ارتباطی (انتقال اطلاعات بین سیستمهایی که از تکنولوژی متفاوتی استفاده می کنند) و … را بر عهده دارد و با توجه به معماری استاندارد و زیرساخت سرویسگرای محصول، سازمان را در جهت نیل به معماری سرویسگرا و استاندارد یاری میرساند.
از ارزشهای سازمانی آیکن میتوان به اخلاقمحوری و مشتریمداری اشاره نمود. اعتقاد به این ارزشها در آیکن سبب شده است که مشتریان، در کنار تجربه استفاده از بهترین راهکارها در بخشهای مختلف سازمانی، از پشتیبانی مناسب و کامل بهرهمند گردند. برقراری ارتباط دوستانه با مشتریان، پاسخدهی کامل به سوالات، سفارشیسازی کامل با توجه به نیازمندیهای سازمان شما، محیا کردن بستری امن و یکپارچه از دیگر ویژگیهای آیکن میباشد. آی کن (آینده کاوان کهکشان نرم فزار) با ساختاری پایدار و قویتر از همیشه امروز با افتخار راهکار جامع خود را بر اساس نیاز هر یک از مشتریان به عنوان یک راهکار در جهت برنامه ریزی و بهینه سازی سازمان ارائه میدهد.
بیشتر سازمانها میخواهند چابکی را با کاهش زمان برای بازاریابی برای ابتکارات جدید افزایش دهند. ESB ها این هدف را با اجرای یک سیستم ساده، به خوبی تعریف شده و "قابل اتصال" که مقیاس بسیار خوبی دارد، ترویج می کنند. در اینجا در MuleSoft میدانیم که معماری ESB دقیقاً همین است: یک معماری و نه صرفاً محصولی که میتوانید آن را از قفسه خریداری کنید. این نه تنها زیرساخت بلکه طراحی برنامه را نیز در بر می گیرد.
منابع:
1- https://www.mulesoft.com/resources/esb/what-esb
2-https://www.hcltech.com/blogs/everything-you-need-know-about-enterprise-service-bus-esb
3-https://shadow-soft.com/enterprise-service-bus-esb-tools/
4-https://searchapparchitecture.techtarget.com/definition/Enterprise-Service-Bus-ESB#:~:text=An%20enterprise%20service%20bus%20(ESB,structural%20and%20business%20policy%20rules
«این مطلب، بخشی از تمرینهای درس معماری نرمافزار در دانشگاه شهیدبهشتی است»