نرم‌افزار کاموندا (Camunda) چیست و چه قابلیت‌هایی دارد؟


نرم افزار کاموندا (Camunda) چیست و چه قابلیتهایی دارد؟

کاموندا یک پلتفرم مبتنی بر جاوا است و برای گردش کار و اتوماسیون فرآیند از نمادگذاری  BPMN، برای مدیریت پرونده ها از CMMN  و برای مدیریت تصمیم گیری کسب و کار ازDMN    پشتیبانی می‎کند. در این مطلب اطلاعاتی در مورد ویژگی های ارائه شده توسط پلتفرم Camunda BPM گرد آوری شده است. تصویر زیر برای نمایش کلی کاموندا (Camunda)، مهمترین مؤلفه ها و برخی از نقش های یک کاربر معمولی را نشان داده است.

کلمه کاموندا (Camunda) شامل دو قسمت لاتین “capere” (به معنای درک”) و “munda” (به معنای پاک) است. معنای لغوی این واژه آن است که می‎خواهیم دنیای پیرامون خود را عمیقا درک نموده و بر اساس آن، به روشی م مؤثر و اخلاقی عمل کرده و دنیا را به مکان بهتری برای همه تبدیل نماییم.

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

  • موتور پردازش کاموندا شامل یک کتابخانه جاوا است که فرآیندهای BPMN0، پرونده هایCMMN1.1و تصمیماتDMN 1.1 را به اجرا در می آورد. موتور پردازش کاموندا یک هستهPOJOسبک وزن دارد و از پایگاه داده رابطه ای برای ماندگاری استفاده می‎کند. همچنین برای نقشه برداریORMاز چارچوب نقشه برداریMyBatisاستفاده می نماید.
  • چارچوبی برای ادغام اسپرینگ
  • ادغام CDI / JavaEE
  • ادغام زمان اجرا (ادغام شدن با زیرساخت های سرور برنامه)

مدل سازهای کاموندا:

  • CamundaModeler: ابزاری است که برای مدلسازی نمودارهایBPMN 2.0وCMMN1و همچنین جداول تصمیم گیریDMN1.1.مورد استفاده قرار می گیرد.
  • bpmn.io: یک نوع پروژه اُپن سورس به عنوان چارچوبی برای مدلسازی و مجموعه ابزارهای اپلیکیشن.

اپلیکیشن های تحت وب

  • RESTAPIدارای یکسری مستندات و این امکان را به وجود می‎آورد که بتوان به وسیله یک اپلیکیشن از راه دور یا جاوا اسکریپت، از موتور پردازش کاموندا استفاده کرد. مستنداتRESTAPIدر اسناد آن وارد شده است).
  • CamundaTasklistنوعی اپلیکیشن تحت وب است که برای مدیریت گردش کار افراد و وظایف کاربران مورد استفاده قرار گرفته و این امکان را به شرکت کنندگان فرآیند می‎دهد تا وظایف مربوط به گردش کار خود را بررسی کرده، فرم‏های وظیفه را مسیریابی نموده، روی وظایف خود کار کرده و داده های ورودی ارائه دهند.
  • CamundaCockpitنوعی اپلیکیشن تحت وب که برای نظارت بر فرآیندها و عملیات به کار گرفته می شود و این امکان را به کاربر می‎دهد که نمونه های فرآیند را جستجو نموده، وضعیت آنها را بررسی کرده و مشکلات و خرابی ها را ترمیم نماید.
  • CamundaAdminنوعی اپلیکیشن تحت وب بوده و به افراد امکان مدیریت کاربران، گروه ها و مجوزها را می‎دهد.
  • CamundaCycleیک نوع اپلیکیشن تحت وب است و برای هماهنگ نمودن مدل های فرآیندBPMN 2.0بین ابزارهای مختلف مدلسازی و مدلسازها مورد استفاده قرار می گیرد.
  • Camunda Optimize : از Camunda Optimize می‎توان برای تهیه گزارش های وزین استفاده نمود و با انجام تنظیمات دلخواه روی آن ها، نظارت بهتری بر کسب و کار داشت. علاوه بر آن می‎توان آلارم هایی تنظیم کرد که موارد عدم موفقیت اهداف عملکرد را هشدار می دهند. در نهایت به کمک تجزیه و تحلیل پیشرفته گلوگاه های فرآیند شناسایی می شوند.

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

  • موتور پردازش عمومی: APIموتور عمومی APIهمانند رابطی برای برنامه های جاوا است تا به این وسیله با موتور پردازش ارتباط برقرار کنند. مسئولیت های مختلف موتور پردازش یعنی مخزن پردازش، تعامل با پردازش زمان اجرا، مدیریت وظیفه و… به سرویس های انفرادی تقسیم می‎شوند. وقتی رشته‎های پیام وارد موتور پردازشAPI عمومی می‎شوند از طریق یک رهگیرهدایت گردیده و برای تنظیم محتوای پیام مورد استفاده قرار می‎گیرند.
  • BPMN0CoreEngine: هسته اصلی موتور پردازش که یک موتور اجرایی سبکتر برای ساختارهای گرافیکیدارد. هسته اصلی دارای یک تجزیه گرBPMN2.0نیز هست که برای تبدیل فایل هایBPMN2.0 XMLبهJavaObjectو به مجموعه‎ای از پیاده سازی هایBPMN مورد استفاده قرار می‎گیرد و اجرای ساختارهای خاصBPMN2.0مانند Gatewayها یا ServiceTaskرا ممکن می سازد).
  • Job Executor: کارهای زمینه ای ناهمزمان مثل تایمرها یا دنباله های ناهمزمان را در یک فرآیند پردازش می کند.
  • ThePersistenceLayer: لایه پایداری موتور پردازش است و مسئول پایدار نگهداشتن حالت لحظه ای پردازش داده ها است.

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

  • موتور پردازش تعبیه شده: در این سناریو، موتور پردازش به صورت یک کتابخانه به یک اپلیکیشن سفارشی اضافه می‎گردد. به این ترتیب به راحتی می‎توان موتور پردازش را با چرخه عمر برنامه شروع کرده و متوقف نمود. روی یک پایگاه داده مشترک، می توان چندین موتور پردازش تعبیه شده را به اجرا درآورد.

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

  • موتور پردازش مستقل (از راه دور): در این گزینه موتور پردازش به صورت شبکه ای ارائه می‎شود. برنامه های مختلفی که تحت شبکه در حال اجرا هستند از طریق یک کانال ارتباطی و از راه دور با موتور پردازش ارتباط برقرار می نمایند.

در مورد یکپارچگی

شاید در حال حاضر سهم بازار کاموندا نسبتاً ناچیز باشد، اما مانع از آن نخواهد بود که در سه جبهه با رهبران پلتفرم های کم کد یعنی  BPMN Appian، Pega  و IBM BPM  وارد رقابت نشود.

تمهید کاموندا: برخی صاحب نظران حوزهBPM ، با موضع گیری کاموندا موافق بوده و از هدف قرار گیری در طبقه بندی  BPMS” هوشمند” (iBPMS)  گارتنر، حمایت می کنند. چرا که این طبقه بندی در کنار یکپارچگی، مقداری مقیاس پذیری را نیز دربر می گیرد.

همچنین کاربران در صورت تمایل می‎توانند کاموندا را در سطح دپارتمانی مستقر نمایند و در موقعیت هایی که نیازهای ذینفعان ممکن است از دپارتمانی به دپارتمان دیگر متفاوت باشد از آن بهره گیرند.

به عنوان مثال دریک واندیور، یک متخصص در معماری پلتفرم ها برای شرکت های خدمات مالی  ING، متوجه شد که انعطاف پذیری و مقیاس پذیری کاموندا با نیازهای شرکت وی متناسب است. ING  پگا را که یک پلت فرم های یکپارچه است به صورت محلی مستقر نمود، در حالی که تصمیم داشت این استقرار به صورت جهانی باشد. تنها راه تحقق این شاهکار، این بود که چندین نسخه از پگا نصب شود و این امر منجر به پیچیدگی و حاکمیت ناکافی پلتفرم می‎شد.

برای رویارویی با این چالش، ING  کاموندا را در برخی کشورهای خاص مستقر نمود و در آن مکان ها به توسعه دهندگان نرم افزار امکان داد فرآیندهایی را ایجاد کنند که نیازهای محلی را برآورده سازند؛ بدون آنکه به طور کامل پگا را از بین ببرند.

کم کد بودن تحت هر عنوان

Jakob Freund، مدیرعامل و بنیانگذار کاموندا، مدتی است که شروع به رقابت در زمینه کم کد بودن نموده است.

هنگامی ‎که دانیل میر و دیگر بنیانگذاران کاموندا ، نمایشی از Camunda Modeler  را به اجرا درآوردند، شکی وجود نداشت که این محصول یک پلتفرم کم کد است و اجرای آن برای کاربر راحت  و بی دردسری خواهد بود.

در واقع،Modeler  نه تنها یک رویکرد بصری کم کد برای ایجاد گردش کار ارائه می‎دهد (و البته امروزه همه محصولات BPMS دارای این ویژگی می باشند)، بلکه توانسته نوتیفیکیشن BPMN را نیز در ویرایشگر تصویری بگنجاند، و این امکان را به مدلسازان بدهد که تنها با داشتن دانشی جزئی از استاندارد، مدل های سازگار با  BPMN را بسازند.

کاموندا به طور غیرمستقیم دارای کد بالا است، اما از توسعه دهندگان انتظار می‎رود مدل ها را طوری طراحی کنند که بتواند عملکردهای مدنظر را اتوماتیک نمایند. کاموندا برای پیاده سازی چنین عملکردهایی از Spring Boot  استفاده می نماید. Spring Boot  یک زیر مجموعه سبک از چارچوب Spring Java است که فرآیند ایجاد اپلیکیشن های مستقل و Production Grade جاوا را ساده می‎سازد.

رسیدن به درجه بالای ابر بومی

شاید کاموندا بتواند تنها فضای اندکی در غلبه جهانی بر  Appians، IBMs  و Pegas پیدا کند، اما خوشبختانه ترفند دیگری در آستین دارد: استفاده از موتور گردش کار Zeebe برای هماهنگ سازی میکرو سرویس ها. Zeebe  یک موتور منبع باز است و مولفه اصلی سرویس های جدید پیشنهاد شده از سوی Camunda Cloud BPMS-as-a- service  می باشد.

موتور گردش کارZeebe  دو قابلیت مهم برای BPMS  به همراه دارد. نخست اینکه می‎تواند به طور همزمان از تعداد نامحدودی از نمونه های فرآیند پشتیبانی کند. این قابلیت در مواردی که فرآیندهای مبتنی بر کاربر حجم بالایی داشته باشند مورد نیاز خواهد بود.

دوم اینکه، Zeebe  رویکردی ابری به توسعه دهندگان نرم افزار ارائه می‎دهد تا بتوانند در شرایطی که پیام ها تمایل به بی نظمی و گشت و گذار در اطراف میکروسرویس دارند و وضعیتی غیرقابل پیش بینی به وجود می آورند، این اثرات را  مدیریت ‎نماید.

Zeebe  حالت متعادلی هم برای وجود کورئوگرافی میکروسرویس ها و هم باقی ماندن هماهنگ سازی در میان آنها به وجود می آورد.

Zeebe  صرف نظر از اینکه محتوای چنین پیام ها و برنامه هایی در مورد اتوماسیون یک فرآیند کسب و کار است یا یک نوع گردش کار دیگر، یک لایه هماهنگ کننده ابر بومی برای برنامه های میکروسرویس مهیا می نماید.

آیا Zeebe   یک مزیت رقابتی برای کاموندا محسوب می شود؟

کانتینرهای ارکستر Kubernetes می توانند حاوی همه نوع کدهای برنامه ای باشند. بنابراین فروشندگان iBPMS  می توانند سیستم عامل های خود را در چنین کانتینرهایی قرار دهند. به عنوان مثال،Pega  در مورد نحوه استقرار پلتفرم خود درKubernetes  راهنمایی های دقیقی ارائه می‎دهد، و سایر فروشندگان نرم افزار نیز بدون شک از محصولات مبتنی برKubernetes  در کار خود استفاده می نمایند.

اما یک تفاوت اساسی میان اجرای کدها روی Kubernetes و تغییر معماری یک اپلیکیشن و ارائه آن به صورت ابری وجود دارد، مخصوصا زمانی که آن اپلیکیشن خود حاوی زیرساخت های سیستم عاملی باشد.

Zeebe  تنها یک پلتفرم برای کاموندا نیست که روی Kubernetes کار می‎کند. بلکه اضافه بر آن نوع جدیدی از پلتفرم های BPMS  است که ‎کاموندا را از حالت محلی به ابر بومی تبدیل می نماید.

Zeebe  توسعه دهندگان را قادر می سازد که در برنامه های ابر بومی از رویکرد مبتنی بر مدل برای نشان دادن گردش کار استفاده نمایند. بنابراین از طیف گسترده ای از گزینه های ممکن برای اتوماسیون هم برای کسب و کار و هم در افق IT استفاده می‎کنند.

با همه این ها بازیکنان فعلی iBPMS باید امیدوار باشند. Zeebe هنوز نابالغ است. و از آنجایی که یک موتور منبع باز نیز هست، شما می توانید به راحتی از آن بهره مند شوید.

منابع:

https://docs.camunda.org/manual/7.7/introduction/

https://docs.camunda.org/manual/7.9/introduction/architecture/

https://techbeacon.com/enterprise-it/can-open-source-camunda-disrupt-bpms-market

https://camunda.com/products/

bpmsمدیریت فرایندهای کسب و کار

bpmsفرایندکسب و کارکموندامدیریتمدیریت فرایندنرم افزار کموندا

دیدگاهتان را بنویسید

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