در معماریهای مدرن سازمانی، اجزای مختلف سیستم نباید برای تبادل اطلاعات بهصورت مستقیم به یکدیگر وابسته باشند. وابستگی مستقیم میان سرویسها، علاوه بر افزایش پیچیدگی، توسعه، نگهداری و مقیاسپذیری سیستم را نیز دشوار میکند.
در ZFrame این مسئولیت بر عهده Messaging Layer است؛ لایهای که با استفاده از ZeroMQ (ZMQ) ارتباطی سریع، پایدار و غیرهمزمان میان سرویسها، موتورهای پردازشی، تجهیزات و سامانههای مختلف ایجاد میکند.
این لایه نقش یک Communication Backbone را در معماری ZFrame ایفا میکند؛ بستری که تمامی اجزای سیستم میتوانند بدون شناخت مستقیم از یکدیگر، اطلاعات، رویدادها و پیامها را تبادل کنند.
نقش Messaging Layer در معماری ZFrame
Messaging Layer مرکز تبادل پیام در کل پلتفرم است.
بهجای اینکه هر سرویس مستقیماً سرویس دیگری را فراخوانی کند، پیامها از طریق ZMQ منتشر شده و سرویسهای مرتبط آنها را دریافت و پردازش میکنند.
این معماری باعث میشود سرویسها مستقل، توسعهپذیر و قابل گسترش باقی بمانند.
معماری ارتباطات
قابلیتهای اصلی
Publish / Subscribe
انتشار و اشتراک پیام
سرویسها میتوانند پیامهای خود را منتشر کنند و سایر سرویسها بدون ایجاد وابستگی مستقیم، آنها را دریافت و پردازش نمایند.
نمونه کاربردها:
Queue
مدیریت صف پیامها
برای پردازشهای زمانبر یا عملیات با حجم بالا، پیامها در صف قرار گرفته و توسط سرویسهای پردازشی بهترتیب اجرا میشوند.
کاربردها:
Event Bus
مدیریت رویدادهای سازمان
تمامی رویدادهای مهم سیستم میتوانند بهصورت متمرکز منتشر شوند تا سایر اجزای پلتفرم بر اساس آنها واکنش نشان دهند.
نمونهها:
Asynchronous Processing
پردازش غیرهمزمان
عملیات سنگین بدون مسدود کردن رابط کاربری اجرا میشوند.
نمونهها:
Real-Time Messaging
ارتباط بلادرنگ
ZMQ امکان تبادل سریع پیام میان سرویسها را فراهم میکند تا تغییرات و رویدادها تقریباً بدون تأخیر در اختیار سایر اجزای سیستم قرار گیرند.
Notifications
مدیریت اعلانها
Messaging Layer بستر ارسال اعلانها به کاربران و سامانهها را فراهم میکند.
نمونهها:
Event Streaming
جریان مستمر رویدادها
در سامانههایی با حجم بالای داده، رویدادها میتوانند بهصورت پیوسته در اختیار موتورهای تحلیل، مانیتورینگ و سایر سرویسها قرار گیرند.
این قابلیت برای سامانههای بلادرنگ و عملیات حساس بسیار ارزشمند است.
کاربردهای عملی در ZFrame
Messaging Layer تنها برای ارتباط بین سرویسهای نرمافزاری استفاده نمیشود، بلکه بستری مشترک برای ارتباط اجزای مختلف اکوسیستم ZFrame فراهم میکند.
نمونههایی از کاربردهای واقعی:
- ارتباط میان موتور Workflow و Business Engine
- ارسال رویدادهای تغییر وضعیت فرآیندها
- هماهنگی سرویسهای پسزمینه (Background Workers)
- مانیتورینگ بلادرنگ سامانهها
- پردازش همزمان اطلاعات از تجهیزات و دستگاهها
- توزیع پیام میان چندین سرویس مستقل
- ارسال رویدادها به موتورهای تحلیل و هوش مصنوعی
- مدیریت اعلانهای سیستمی و مدیریتی
در پروژههایی مانند سامانه مانیتورینگ شبکه خودپرداز، همین معماری امکان دریافت، توزیع و پردازش همزمان پیامهای ارسالی از تجهیزات را فراهم میکند؛ بدون آنکه سرویسهای مختلف وابستگی مستقیم به یکدیگر داشته باشند.
ویژگیهای معماری
Messaging Layer بر پایه اصول زیر طراحی شده است:
مزایای Messaging Layer
- حذف وابستگی مستقیم بین سرویسها
- افزایش سرعت تبادل اطلاعات
- پردازش غیرهمزمان عملیات سنگین
- توسعه آسان سرویسهای جدید
- افزایش مقیاسپذیری سیستم
- تحمل بار بالا در سامانههای Enterprise
- توزیع هوشمند پیامها
- پشتیبانی از پردازش بلادرنگ
- یکپارچگی با Workflow، Business Engine و سرویسهای هوش مصنوعی
جایگاه Messaging Layer در معماری ZFrame
Messaging Layer حلقه ارتباطی تمامی اجزای معماری ZFrame است. این لایه میان Business Engine، Workflow Engine، Integration Layer، AI & Analytics، سرویسهای پسزمینه، تجهیزات و سامانههای خارجی قرار میگیرد و تمامی ارتباطات رویدادمحور را مدیریت میکند.
بهجای ارتباط مستقیم و وابسته میان اجزا، سرویسها از طریق انتشار و دریافت پیام با یکدیگر تعامل دارند؛ رویکردی که علاوه بر افزایش انعطافپذیری، امکان توسعه مستقل هر سرویس، پردازش موازی و مقیاسپذیری در سطح Enterprise را فراهم میکند.

