نرم افزار کاموندا (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


بدون دیدگاه