Business Process Management System
سیستم مدیریت فرآیندهای کسب و کار
رویکرد مدیریت فرایندهای کسب و کار یک رویکرد مدیریتی است که نوع نگاه به سازمان را از نگاه عمودی به نگاه افقی تغییر میدهد. بجای تمرکز بر وظایف و انجام صحیح آنها توسط واحدهای سازمانی نسبتا مستقل، به فرایندهای کاری و نقشهایی که در هر مرحله و در قالب وظایف قابل انجام توسط کارکنان توجه میکند.
فرایند بخشی از یک سیستم است و مجموعهای از یک یا چند فرایند معمولا یک سیستم را تشکیل میدهند. پس نگاهمان به اتوماسیون فرایند باید نگاهی سیستمی باشد. یعنی نباید فرایند را محدود به اتوماسیون گردشکار و ترسیم دیاگرام BPD با استاندارد BPMN دانست. یک سیستم وقتی نرمافزاری میشود که ساختار داده، عملیاتها، قواعد کسب و کار، فرمهای رابط کاربری، گردش کار، خروجیهایی مانند گزارشها و داشبوردهای آن نرمافزاری شود.
برای ایجاد یک فرآیند نیاز به یک تحلیلگر فرآیند است که با بررسی و مصاحبه با پرسنل ذیربط ،مراحل فرآیند را به تصویر بکشد.
در طراحی وضع مطلوب باید اقدامات زیر صورت گیرد:
- اعمال اصلاحات ساختار سازمانی
- رفع نواقص فرایندهای موجود
- تدوین و طراحی فرایندهای کاری جدید
- حذف فرایندهای مازاد
- ادغام فرایندهای مشابه.
قابلیتها و امکانات ویژه سیستم BPMS عبارتند از:
این سیستم از مجموعه چند ابزار و ماژول قدرتمند تشکیل شده است که شامل : کارتابل ، گردش ساز ، فرم ساز ، گزارش ساز و ESB می باشد که در ذیل به اهم امکانات آنها اشاره می گردد :
ایجاد، ذخیره، بازیابی و ویرایش گردش کار و فرآیندها بهصورت گرافیکی
- تعریف شروط و تصمیم گیری در مراحل مختلف گردش کار و فرآیند
- امکان معرفی چارت سازمانی و منابع سازمانی به موتور گردش کار
- انجام پردازشهای اتوماتیک در مراحل مختلف یک گردش کار
- مشاهده مراحل گردش کاری طی شده
- ارجاع اتوماتیک رونوشت به افراد از پیش تعریف شده در ابزار هوشمند گردش کار و یا بصورت دستی به دلخواه کاربر مرحله
- امکان تفویض اختیار توسط مدیر
- امکان خروج از فرآیند (بایگانی فرآیند )بصورت دائمی یا موقت توسط کاربران مجاز
- امکان تعریف فرآیندهای سازمان به سادگی به صورت گرافیکی که مرحله به مرحله قابل طراحی خواهند بود بر اساس استاندارد BPMN2 و مسئولیت و وظایف افراد در سازمان بر اساس چارت و یا روالهای سازمانی به این مراحل اختصاص مییابد.
- تعریف کامل یک فرآیند و تعریف دسترسیهای هر فعالیت
- امکان اتصال چارت سازمانی به فرآیند
- تعریف نحوه عملکرد هر یک از فعالیتها در درون سیستم
- امکان اتصال یک گروه از کاربران به یک مرحله و تعیین متصدی بر اساس شرایط ویا بدلخواه کاربر
- امکان طراحی و ایجاد فرمهای الکترونیکی جهت ثبت فعالیتها، به سادگی توسط کاربران در ابزار فرمساز قابل پیادهسازی میباشد. مدیریت، ایجاد و ویرایش انواع فرمها و انواع فیلدهای داده (جعبه متنی، جعبه متنی چند خطی، برچسب، تاریخ، ساعت، کلمه عبور و ...) در این ابزار امکان پذیر میباشد.
- از ویژگیهای این ابزار، میتوان به ایجاد فرمهایی کاربردی مطابق با نیاز و سلیقهی مسئول طراحی، جهت ثبت و ذخیره سازی اطلاعات اشاره نمود.
- امکان تعریف فرم داینامیک به منظورهای خاص و گردش آنها بر اساس موتور Workflow
- امکان اتصال فرمهای عملیاتی تعریف شده توسط کاربر به موتور گردش کار
- امکان گزارشگیری از فرمهای عملیاتی بهصورت فرآیندی و غیرفرآیندی
- امکان تعیین ارتباط بین فرمها و استفاده از اطلاعات هر یک از آنها در درون یکدیگر
- مدیریت، ایجاد و ویرایش انواع فرم های اداری و سازمانی به صورت پیشرفته (فرم مرخصی ساعتی، روزانه، تایید احکام و ...)
- امکان تخصیص دسترسی به فرمها که در زمان تعریف گردش کار به مراحل انتساب داده می شود
- وجود یک کارتابل قوی برای دسترسی تمامی کاربران مجاز جهت مشاهده کارهای ارجاعی آنها ، کارهای در جریان و خاتمه یافته ای که کاربر در آن نقش داشته است
- امکان ارسال رونوشت به مدیر سطح بالاتر در صورتی که زمان پاسخگویی کاربر از حد مجاز تعریف شده گذشته باشد
- امکان انجام عملیات خاص در صورت تایید یا اتمام یک مرحله بر اساس روال های تایید یا سرویس های تعریف شده
- امکان ارتباط و ارسال اطلاعات ثبت شده فرآیند با سایر سیسمهای نرم افزاری دیگر از طریق سرویس
- امکان گزارش گیری قوی بصورت داینامیکبدلخواه کاربر از اطلاعات فرآیند ها
- ابزار مدیریت کاربران ، که با قابلیت های بسیارقوی در جهت تعریف و دسترسی و مدیریت کاربران و گروهها به شما کمک می نماید.
همچنین ماژول ESB به منظور برقراری ارتباط بین سرویسهای مختلف یک نرم افزار در سطح enterprise و یا نرم افزارهای مختلف مورد استفاده قرار میگیرد. کلیه نرم افزارهای سرویسگیرنده در یک سازمان، درخواست خود را به ESB ارسال نموده، سپس ESB درخواست را پردازش و در صورت لزوم اصلاح کرده و آن را به سرویس دهنده مربوطه تحویل و نتیجه را پس از دریافت، در صورت لزوم پردازش کرده و به سرویس گیرنده تحویل میدهد.
با توجه به انعطاف پذیری و استفاده از پروتکلهای ارتباطی بین نرم افزارها جهت ارتباط بین نرم افزارهای مختلف و بعضا ناهمگون، ESB یکی از بهترین ابزارها در حوزه محاسبات توزیع شده میباشد. نرم افزار ESB باید این قابلیت را داشته باشد که جایگزین تمام ارتباطات مستقیم بین نرم افزارها شده و این ارتباطات را از طریق خود ایجاد نماید. برای دستیابی به این هدف ESB میبایست عملکرد کلیه سیستمهای مرتبط را کپسوله سازی نماید. زمانیکه ESB پیامی دریافت میکند، این پیام به نرم افزار مربوطه هدایت میشود. به دلیل اینکه غالبا نرم افزارها با مدلهای پیام مشابهی توسعه پیدا نمیکنند، ESB میبایست پیام دریافت شده را به فرمتی که برای نرم افزار سرویس دهنده قابل درک باشد تبدیل نماید. وظیفه Software Adapter برآورده نمودن این وظیفه میباشد. ESB بر پایه مدل پیام (Message Model) و طراحی درست عملکردهای نرم افزارها عمل میکند.
قابلیتهای ESB :
- امکان دریافت و ارسال اطلاعات از طریق وب سرویس (SOAP, REST)، پایگاه داده و فایل اکسل
- امکان map کردن فیلدهای مبدا برای استفاده در نرم افزار مقصد
- امکان ارسال درخواستبه چند نرم افزار بصورت همزمان
- تغییر فرمت اطلاعات؛ به عنوان مثال تبدیل json به xml و بالعکس
- پشتیبانی از ارتباطات غیر همزمان به منظور مقابله با مشکلات ناشی از قطعی ارتباطات شبکه و غیره
- مانیتورینگ سرویسها شامل موارد قطعی و وصلی، هر سرویس و ...
- ارسال پیامهای هشدار در صورت قطع/وصل شدن سرویسهای مبدا و یا مقصد
- امکان تهیه گزارشات مدیریتی
- امکان تعیین سطوح دسترسی برای هر نرم افزار
- احراز هویت نرم افزار متقاضی اطلاعات به منظور دسترسی به سرویسهای خاص (استفاده از نام کاربری و کلمه عبور)
- بررسی فرمت اطلاعات سرویسهای مبدا جهت تشخیص تغییرات و ارسال پیام در صورت تغییر در فرمت دادههای ارسالی
- ثبت log از کلیه ارتباطات، اطلاعات ورودی و اطلاعات خروجی
- مانیتورینگ عملکرد سرویسها در سیستم در هر لحظه
مزایا
- کاهش هزینههای مربوط به نگهداری و استقرار نرم افزارهای سازمان
- مبتنی بر معماری سرویس گرا
- کنترل کامل ارتباطات بین نرم افزارها
- بررسی سطوح دسترسی جهت دسترسی به سرویسها
- کاهش زمان شناسایی مشکلات در زمان بروز مشکل؛ با توجه به مانیتورینگ کلیه ارتباطات، در صورت بروز مشکل، بدون نیاز به دیباگ نرم افزارهای مبدا و مقصد میتوان نسبت به شناسایی محل وقوع مشکل اقدام نمود.
- نسبت به روش ادغام ارتباطات از طریق کد، امکان کانفیگ بیشتری دارد.
- سهولت در تغییر سرویسها از لحاظ منبع و ساختار
معماری سیستم:
- متدلوژی انتخاب شده برای اجرای این پروژه AUP (به صورت سفارشی شده) بوده و با تمرکز بیشتر بر تکنیکهای Prototyping و بهره گیری از سیستم های کد منبع باز ، به اجرا در خواهد آمد. که در واقع ترکیبی از متدو لوژی های RUP و Agile می باشد. (ترکیبی از قدرت و سرعت ).
معماری چند لایه (Multi-Layer Architecture)
در معماری چند لایه برنامه به چندین بخش تقسیم می گردد که این بخش ها می توانند منطقی و یا فیزیکی باشند و هرلایه مستقل از لایه های دیگر عمل می کند. استفاده از این مدل باعث می شود که برنامه نویسان کدهایی انعطاف پذیر (flexible) و با قابلیت استفاده مجدد (reusable) تولید کنند. به طور کلی لایه بندی پروژه باعث نظم در کارها و آسان تر شدن رفع خطاها می گردد و همین امر منجر به بالا رفتن سرعت توسعه پروژه می گردد.
این سیستم از یک معماری سه لایه اصلی ( که لایه میانی قابل شکست به لایه های بیشتر می باشد) مبتنی بر وب تبعیت می نماید.
معماری نرم افزار
- نرم افزار این سیستم از مدل عمومی MVP تبعیت کرده و در چهار لایه پیاده سازی می شود.
- لایه ارائه ( Presentation )
- لایه عملکرد ( Action Layer )
- لایه سرویس ( Service Layer )
- لایه دسترسی به داده ( Data Access Layer )
یا بعبارتی دیگر بر اساس دید کلی :
- DAL، داده ها را از بانک اطلاعاتی بازیابی نموده و از طریق لایه منطقی آن ها را به UI ارسال می نماید تا اطلاعات برای کاربر نمایش داده شود و در حالت دیگر کاربر، داده ها را از طریق واسط گرافیکی (UI) وارد نموده، لایه منطقی اعتبارسنجی و پردازش های لازم را روی داده ها انجام می دهد و در نهایت برای ذخیره سازی، اطلاعات را به لایه DAL ارسال می نماید.
معماری :
- در این مدل از یک Tier میانی دیگر بین سرویس گیرنده ( رابط کاربر) و سرویس دهنده بانک اطلاعاتی استفاده می شود.
- لایه میانی شامل مجموعه ای از ابزارها برای دستیابی به منابع سیستم ، صرفنظر از نوع پلات فورم است
- لایه میانی مسئولیت مدیریت پردازش ها را برعهده خواهد گرفت
- لایه میانی مسئولیت تجزیه و یا ترکیب نتایج حاصله از منابع داده ئی نظیر بانک های اطلاعاتی را برعهده دارد.
- بخش های رابط کاربر ، مدیریت پردازش ها و مدیریت بانک های اطلاعاتی بخش های سه گانه مدل فوق می باشند.
- لایه میانی خود می تواند به دو و یا بیش از دو بخش با عملکردهای متمایز تقسیم گردد (Multi-Tier) لایه منطق تجاری( لایه عملکرد و لایه سرویس ) می تواند برروی سرویس دهنده های متعدد قرار گیرد.
- مدل فوق گزینه ای مناسب برای پیاده سازی نرم افزار بر روی اینترنت است .
مزایا :
- افزایش کارآئی ، انعطاف پذیری ، قابلیت استفاده مجدد و توان پشتیبانی
- ارتقاء کارآئی همزمان با افزایش تعداد کاربران
- مخفی نمودن پیچیدگی ها ی موجود با توجه به ماهیت پردازش های توزیع شده از دید کاربران
- ارائه امکانات لازم به برنامه نویسان بمنظور طراحی و پیاده سازی نرم افزار ها با یک رویکرد مشابه
- ارائه امکانات لازم به برنامه نویسان بمنظور تبعیت از روش های یکسان برای دستیابی به داده ها
- استفاده از الگوهای طراحی و برنامه نویسی در پیاده سازی و توسعه سریع تر
- زبان پیاده سازی این چارچوب و سیستم مورد پیاده سازی سمت سرور زبان PHP و استفاده از فریمورک Yii2 می باشد. این زبان برنامه نویسی به دلیل اینکه به صورت داخلی توسط وب سرور EngiNX پشتیبانی می شود دارای سرعت بسیار بالایی می باشد.
- از طرف دیگر به دلیل اینکه وب سرور EngiNX به دلیل سبکی و سرعت جزو بهترین وب سرورهایی است که بیشترین درصد سرورهای اینترنتی را به خود اختصاص داده، این زبان(PHP) به پر کاربردترین زبان برنامه نویسی وب تبدیل شده است.
مزیت های زبان PHP
PHP یک ابزار اوپن سورس و رایگان است به همین دلیل هاست هایی که میزبانی آن را انجام می دهند بسیار ارزان تر از هاست های NET. هستند.
پی اچ پی بر روی تمامی پلتفورم های معروف مثل ویندوز،لینوکس و مکینتاش قابل اجراست.
PHP یک ابزار ساخت یافته بوده و یادگیری آن بسیار ساده است.
ابزار کار با PHP همگی اوپن سورس بوده و استفاده از آن رایگان هستند.
سرعت بالا؛ اجرای یک اسکریپت PHP به طور متوسط تا سه برابر یک اسکریپت ASP است.
رابط کاربری و ابزار پیاده سازی آن :
همچنین زبان پیاده سازی ( WebApplication ) سمت کلاینت JavaScript و Angular و Css است.
(انتخاب زبان و پایگاه داده مبتنی بر : \ PHP / PostgreSql)
پایگاه داده انتخابی:
چهار گزینه اصلی برای این پروژه عبارتند از : PostgreSql / MySQL / Oracle Sqlserver/ که پایگاه داده انتخابی این طرح PostgreSql که دلایل بررسی به شرح ذیل می باشد.
پایگاه داده Oracle
قویترین سیستم مدیریت پایگاه داده مطرح در سطح دنیا و دارای کاملترین امکانات و قابلیتها می باشد.
- هزینه های خرید و نگهداری آن در مقیاس هزینه های خود پروژه قابل تحمل است و درصورت بوجود آمدن امکان خرید مسئله خاصی ایجاد نخواهد کرد.
- وجود یک نیروی مدیر پایگاه داده در طول کار پروژه الزامی است.
- گرچه بنا بر تحریم های بین المللی امکان استفاده از خدمات پشتیبانی شرکت ارائه دهنده وجود ندارد، ولی پایگاه داده از مستندات بسیار کاملی برخوردار است و درمواقع مشکل می توان از آن استفاده نمود.
- نسخه قابل نصب روی Linux نیز وجود دارد.
پایگاه داده PostgreSQL (انتخاب اصلی)
مدیریت پایگاه داده PostgreSQL یکی از پیشرفته ترین پایگاه های داده اپن سورس جهان مطرح است. سیستم مدیریت پایگاه داده علاوه بر داشتن قابلیت های پیشرفته ای برای رقابت با اوراکل، از نظر سرعت نیز رقیب سرسختی برای MySQL ساده و چابک محسوب می شود.
پایگاه داده PostgreSQL یک سیستم مدیریتی پایگاه داده رابطه ای شیء یا ORDBMS است. این نرم افزار تحت مجوزی شبیه به BSD عرضه شده و به همین دلیل، یک نرم افزار آزاد به شمار می آید. مانند دیگر پروژه های اپن سورس، شرکت خاصی پی گیر بحث توسعه آن نیست و جامعه ای از توسعه دهندگان به توسعه و بهینه سازی آن مشغول هستند.
علاوه برآن با سیاست پارتیشنینگ مناسب و استفاده از قابلیت های NonSql برای مدیریت و کاربرد داده های حجیم بسیار مناسب است. لذا این پایگاه داده بعنوان انتخاب پیشنهاد می گردد.
پایگاه داده MySQL
این پایگاه داده از نظر امکانات و قابلیتها محدودیتهایی دارد, و گرچه در واکشی اطلاعات سرعت مناسبی برخوردار است ولی در ساختارهای کاربردهای سازمانی مبتنی بر تراکنشهای مالی زیاد به هیچ عنوان قابل اعتماد نیست. Engine های تراکنشی آن نیز قابلیت سرعت بالای مثال زدنی این پایگاه داده در واکشی اطلاعات را نیز ندارند. بیشترین استفاده از این پایگاهداده در سایتهای اینترنتی با توجه تراکنشی نبودن و نیاز به سرعت بالا در واکشی اطلاعات است.
پایگاه دادهSQLSERVER
این پایگاه داده از نظر امکانات و قابلیتها بسیار خوب بوده و در واکشی اطلاعات سرعت مناسبی برخوردار است ولی به لحاظ لایسنس بصورت رایگان نبوده و ممکن است باتوجه به حفظ مالکیت معنوی مشکل ساز گردد.