سرویس های شما چطور باهم حرف می‌زنند؟
شماره ۱

فرض کنید سرویس های متعددی توسعه دادید(یا گرفته اید) که هرکدام زبان ورودی و خروجی متفاوتی دارند. یکی Rest میگیره اما خروجش به سمت یک broker میره.
اون یکی SOAP میگیره و می‌ره دوتا سرویس Rest رو صدا می‌کنه همزمان یه چیزی میزنه تو broker اما فقط تجمیع جواب اون دوتا Rest رو برمی گردونه.
یا یه سرویس دارید که میره از ftp فایل csv برمیداره تبدیلش می‌کنه به pojo و یه سرویس Rest رو صدا می‌کنه.

لاجیک پُر و پیچیده‌ای داره این تبدیلات و برقراری ارتباطات. اگر بشه یک زبان استاندارد برای این تبدیلها و مسیریابی ها داشت عالی میشه.
اینجاست که Enterprise integration patterns وارد بازی میشه. این پترن ها انواع حالتهای مختلف شرطها، تبدیل ها و مسیریابی پیام ها رو شامل میشه. ۶۵ پترن مختلف که از تجربه معماران نرم افزار بدست آمده. این پترن‌ها سرچشمه بوجود اومدن ESB های اوپن سورسی مثل WSO2 و Apache Camel و Fuse شده اند.
حالا اگر یه ابزار داشته باشیم که این پترن‌ها رو‌ بشه باهاش پیاده سازی و ترکیب کرد و یک فلو برای حل مسئله درست کرد و در عین حالا کلی امکانات برای تبدیل پروتکل های مختلف به هم دیگه رو داشته باشه مثل تبدیل راحت xml به json یا socket به Rest دیگه ما برنامه نویس ها به جای درگیر شدن با جزئیات این تبدیلات
حالا فقط روی بیزینس اصلی تمرکز میکنیم و کارها رو سریعتری انجام میدیم.
در پستهای بعدی راجع به Apache Camel خواهم گفت.

#architecture #apachecamel #java #springboot #cleanarchitecture #esb #wso2 #banking


ترجمه:

How do your services talk to each other?
Number 1

Suppose you have developed (or taken) several services, each of which has a different input and output language. One gets Rest, but the exit goes to a broker.
He takes SOAP and calls two Rest services at the same time, puts something in the broker, but only returns the sum of the answers of those two Rest.
Or do you have a service that takes a csv file from ftp, converts it to pojo and calls a Rest service.

These transformations and communication have a full and complex logic. It would be great if there was a standard language for these conversions and routing.
This is where Enterprise integration patterns come into play. These patterns include all kinds of conditions, conversions and message routing. 65 different patterns obtained from the experience of software architects. These patterns are the origin of open source ESBs such as WSO2, Apache Camel and Fuse.
Now, if we have a tool that can implement and combine these patterns and create a flow to solve the problem, and at the same time have all the facilities to convert different protocols to each other, such as easy conversion of xml to json or socket Instead of getting involved with the details of these conversions, we programmers can rest
Now we only focus on the main business and do things faster.
I will talk about Apache Camel in the next posts.

#architecture #apachecamel #java #springboot #cleanarchitecture #esb #wso2 #banking