خانه » نمایی از معماری پلتفرم نرم افزار کاموندا (Camunda)

نمایی از معماری پلتفرم نرم افزار کاموندا (Camunda)

نرم افزار کاموندا یک فریمورک مبتنی بر جاوا است.که هسته اصلی آن به زبان جاوا نوشته شده است . تمرکز اصلی کاموندا بر روی ارائه ابزارهای مورد نیاز توسعه دهندگان جاوا جهت پیاده سازی و اجرای فرآیندهای تجاری و گردش کار در JVM می باشد.اگر برنامه نویس جاوا نیستید نگران نباشد,چرا که برای شما هم راه حلی در این پلتفرم وجود دارد و ما همچنین می خواهیم فناوری موتور فرآیند را در دسترس توسعه دهندگان غیر جاوا قرار دهیم.به همین دلیل پلتفرم کاموندا یک REST API با امکانات فوق العاده ارائه می‌کند که به شما امکان می‌دهد برنامه‌هایی را بسازید که به یک موتور پردازش از راه دور متصل می‌شوند.

پلتفرم کاموندا(Camunda) را می توانیم هم به عنوان یک سرویس دهنده ی موتور فرایند مستقل(standalone process engine server) و هم در برنامه نوشته شده توسط زبان جاوا به صورت توکار (embedded) استفاده کنیم , به گونه ای که این قابلیت استفاده توکار به عنوان قلب پلتفرم کاموندا در تمام جنبه های توسعه در نظر گرفته شده است.تیم توسعه پلتفرم سخت تلاش میکند که سربار ناشی از موتور پردازش فرآیند و همچنین وابستگی به کتابخانه های شخص ثالث را به حداقل ممکن برساند(بهتون این اطمینان رو میدم که کاملا موفق بودن)

معماری موتور فرآیند

معماری موتور فرآیند
Process Engine Architecture
  • API عمومی موتور پردازش (Process Engine Public API): API مبتنی بر معماری سرویس گرا که به برنامه های جاوا اجازه می دهد تا با موتور پردازش(process engine) تعامل داشته باشند.مسئولیت های مختلف موتور پردازش (به عنوان مثال rocess Repository, Runtime Process Interaction, Task Management ، …) به خدمات جداگانه تقسیم می شود.
  • موتور اصلی BPMN 2.0 : هسته اصلی موتور فرآیند هست.در حقیقت یک موتور بهینه شده جهت پردازش المانهای گرافیکی BPMN 2.0 می باشد .برای این منظور تحلیلگر BPMN 2.0 فایل مدل فرآیند که دارای فرمت XML می باشد را تجزیه و تحلیل کرده و براساس المانهای موجود در فایل اقدام به ایجاد Java Objects هایی میکند که این آبجکت ها پیاده سازهایی از Gateways و Service Tasks و … می باشند
  • اجرا کننده فعالیت های غیرهمزمان (Job Executor): وظیفه پردازش کارهای پس زمینه غیرهمزمان مانند تایمرها و یا تسک های غیرهمزمان را… بر عهده دارد.
  • لایه ذخیره ساز(The Persistence Layer) :موتور پردازش دارای یک لایه ذخیره سازی است که مسئول ذخیره وضعیت نمونه فرآیند(process instance) در یک پایگاه داده رابطه ای است. موتور فرآیند کاموندا از فریمورک MyBatis به عنوان ORM استفاده می کند

کتابخانه های شخص ثالث

به بخش مربوط به کتابخانه های شخص ثالث مراجعه نمایید.

معماری پلتفرم کاموندا

به کارگیری موتور فرآیند به صورت توکار(Embedded Process Engine)

معماری پلتفرم کاموندا(موتور فرآیند به صورت توکار)
موتور فرآیند به صورت توکار

در این حالت ، موتور پردازش(process engine) به عنوان یک کتابخانه به یک برنامه نوشته شده با جاوا اضافه می شود. به این ترتیب ، موتور فرآیند به راحتی می تواندبا چرخه عمر برنامه راه اندازی و متوقف شود. قضیه زمانی جالب میشه که بدونید در آن واحد میتوانید چندین موتور پردازش رو بر روی یک پایگاه داده مشترک اجرا کرد یعنی توزیع بار سیستم به سادگی هرچه تمام تر

موتور پردازش مشترک در یک کانتینر

معماری پلتفرم کاموندا(موتور پردازش مشترک در یک کانتینر)

برای این مورد موتور پردازش درون یک کانتینر (Servlet Container, Application Server, …) اجرا می شود. بنابراین موتور پردازش می تواند به عنوان یک کانتینر سرویس دهنده برای سایر برنامه های اجرا شده در کانتینر عمل کند.این مفهوم را می توان با صف پیام JMS مقایسه کرد که توسط runtime ارائه می شود و برنامه های دیگر برحسب نیاز می توانند از امکانات آن استفاده کنند.نوعی نگاشت یک به یک بین استقرار فرآیند و اپلیکیشن ها وجود دارد: موتور پردازش، تعاریف فرآیند مستقر در یک اپلیکیشن را پیگیری نموده و اجرای آن را به برنامه مورد نظر تفویض می‎نماید.

اجرای موتور پردازش به صورت مستقل

اجرای موتور پردازش به صورت مستقل
Standalone (Remote) Process Engine Server

در این حالت موتور پردازش فرآیند به عنوان یک سرویس دهنده در شبکه عمل می کند.به گونه ای که سایر برنامه های موجود در شبکه میتوانند درخواست های خود را به سرویس فوق ارسال کنند.در این روش ساده ترین روش دسترسی به موتور پردازشی از راه دور ,استفاده از REST API می باشد.البته شما محدود به استفاده از REST API نمی باشید و می توانید جهت ارتباط با موتور پردازشی از SOAP Webservices یا JMS هم استفاده کنید ولی باید آستین هاتون رو بالا بزنید و خودتون اقدام به پیاده سازی آنها کنید.

مدل کلاسترینگ(Clustering Model)

مدل کلاسترینگ(Clustering Model)
clustered-process-engine

به منظور فراهم کردن ویژگی های مقیاس پذیری و fail-over می توانید موتور های پردازش فرآیند را برروی نود های مختلف توزیع کنید.البته این نکته رو یادتون باشه که تمام نودهای مربوط به موتور پردازش باید به دیتابیس مشترک متصل باشند

مرجع مقاله سایت کاموندا

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *