فناوری محصول
NISYS ERP تنها محصول ERP توسعه یافته در ایران است که برای سازمانهای هلدینگ، چند شرکتی، کاربرد دارد و توسط چند سازمان بینالمللی دارای گواهی تایید در طراحی و تولید استاندارد برای یک ERP است.
هر پروژه بزرگ کاربردی مبتنی بر سابقه علمی و عملی تیم اصلی آن میباشد و توسعه ERP نفیس نیز از این قاعده مستثنی نمیباشد. فکر طراحی یک ERP بومی شده با فرهنگ، و شرایط کاری صنایع و سازمانهای ایران از سال 1379 با مطالعه وضعیت صنایع ایران، بررسی مشکلات و ریشههای آن شروع شد. در این ارتباط، از عمده مشکلات صنعت کشور میتوان به موارد زیر اشاره نمود:
1- ناهمگونی ماموریت سازمان با رفتار سازمانی.
2- وجود شکافهای متعدد در فرایندهای سازمانی و یا همپوشانیهای غیر متعارف ناشی از جزیرهای بودن مدل سازمان.
3- نامشخص بودن مدل امنیت و نحوه تعریف و کنترل آن.
4- وابستگی شدید سازمان به قواعد سلسله مراتبی که از چابکی سازمان بطور قابل ملاحظهای میکاهد.
5- عدم تعریف شاخصهای عملکردی سازمان و اجزای آن.
6- ناتوان بودن سازمان در برنامهریزی کوتاه مدت و میان مدت.
7- عدم دسترسی مدیران سازمان به گزارشات بلاواسطه که از شفاف بودن کافی برخوردار باشد.
8- متقارن نبودن فعالیتها که قابلیت همافزایی واحدها را در کل سازمان بشدت کاهش میدهد.
- انعطافپذيري در مواجهه با اندازه سازمان و حجم استفاده
- انعطافپذيري در تطابق با محيط عملياتي
- استفاده از زيرساخت توسعه يافته اطلاعاتي براي سازمان
- طراحي واسطهاي انعطافپذير براي تبادل خدمات ميان ماژولهاي مختلف
- تكيه بر عمليات كسب و كار با ديدگاه فرآيندهاي عملياتي
- توسعهپذيري اطلاعات با استفاده از مشخصههاي پويا
- ارائه خدمات و سرويسها در يك محيط كاري پويا و توسعه پذير در قالب پورتال سازماني
- ارائه گزارشهاي توسعه پذير و پارامتريك
- ارائه سرويسهاي عملياتي سيستم براي ايجاد Integration با فضاي اطلاعاتي سازمان
- پشتيباني از محيطهاي عملياتي متفاوت بعنوان Clientهاي سيستم
- پشتيباني كامل از شخصیسازی محيط توسط كاربر
- توليد خروجي از هر بخش از اطلاعات براي ارتباط با بدنه اطلاعاتي سازمان
لايههاي مختلف در اين معماري به شرح زير ميباشد:
- Enterprise Architecture Blueprint
اين لايه كه در واقع مورد ارجاع توسط كليه لايهها واقع ميشود در واقع يك نقشه از كل سيستم است كه روابط ميان ماژولها و اطلاعات رد و بدل شده ميان آنها را نشان ميدهد و بشكل واسطهاي انعطافپذيري در مرز ميان ماژولهاي مختلف پيادهسازي شده است.
- Enterprise Persistence Service
اين لايه از يك مدل معماري شي گرا تبعيت میکند و وظيفه ثبت و مديريت اسناد و اشيا سازماني را عهدهدار میباشد. تمامي فعاليتهاي سيستم شامل مديريت تراكنش، سرويسهاي عملياتي و رويدادنگاري توسط اين لايه انجام ميشود.
- Enterprise Directory Service
اين لايه در واقع فهرست كاملي از عناصر سازماني است كه بعنوان عناصر پايه در سيستمهاي مختلف مورد استفاده قرار داده ميشوند. اين فهرست شامل عناصر و اشياي سازماني است كه به سازمان و نه هيچ يك از حوزههاي عمليتي سازمان تعلق دارند. مواردي همچون چارت سازماني، امنيت و اشخاص جزئي از اين سرويسها محسوب ميشوند.
- Business Architecture Modeling
اين لايه متولي تعريف ساختار سازمان میباشد. با استفاده از ابزارهاي ارائه شده در اين لايه سازمان و روابط موجوديتهاي سازمان (مانند سازمان، شركتهاي تابعه، واحدهاي تجاري و …) قابل تعريف و مدلسازي ميباشند. با استفاده از ابزارهاي ارائه شده در اين لايه ميتوان سازمان را حتي در حين عمليات سازماندهي مجدد كرد.
- Business Domain Applications
اين لايه شامل كليه ماژولهاي اطلاعاتي راهكار ERP در حوزههاي مختلف منابع انسانی، توليد، تداركات و خريد، فروش و … ميباشد كه بر روي كليه لايههاي پيشبنا شده و زيرساخت ERP را در حوزههاي مختلف تجاري و عملياتي توسعه ميدهد.
در اين معماري براي پاسخگوئي به شاخصهاي آورده شده در بالا، راهكار نرمافزاري ERP سامانه یکپارچه نفیس موارد زير را در ساختار خود در نظر گرفته است:
- استفاده از الگوي معماري چند لايگي Multi-Layer
راهكار نرمافزاري ERP سامانه یکپارچه نفیس از نگاه منطقي داراي مولفههاي متفاوتي ميباشد كه سرويسها و خدمات نرمافزاري را در لايههاي متفاوتي مجتمع كرده و در اختيار لايههاي ديگر و يا سيستمهاي ديگر (نرمافزارهاي ديگر سازمان كه بنوعي استفاده كننده از خدمات و يا اطلاعات راهكار نرمافزاري ما ميباشند) قرار ميدهد. اين معماری در نحوه پيادهسازي علاوه بر تجميع خدمات و اطلاعات مرتبط به هم در يكجا، امكان دسترسي به آن را سهولت بخشيده و بسادگي امكانات خود را به طيف وسيعي از واسطهاي كاربري مورد استفاده كاربر از يك طريق ارائه ميدهد و با اينكار مديريت و كنترل فعاليتها و عمليات را سادهتر مي سازد. بعلاوه با توجه به استقلال لايههاي مختلف اعمال تغييرات بواسطه توسعه آتي و پشتيباني سيستم در اين معماري با دقت و سرعت بيشتري قابل حصول میباشد. معماري فوق از بخشهاي زير تشكيل شده است :
- Data Access
اين لايه وظيفه ارتباط با منابع اطلاعاتي را عهدهدار میباشد و تمامي فعاليتهاي مربوط به ارسال پرسوجوهاي اطلاعاتي در اين لايه صورت ميگيرد. اين لایه با استفاده از الگوي Provider پيادهسازي شده است و قابليت انطباق با كليه بانكهاي اطلاعاتي را دارا ميباشد. در حال حاضر فقط بانك اطلاعاتي Oracle فعال است.
- Business Service
اين لايه وظيفه ارائه خدمات و سرويسهاي عملياتي سيستم را به لايههاي بالاتر عهدهدار ميباشد. اين خدمات شامل سرويس ذخيره و بازيابي، تراكنش، رويدادنگاري، امنيت و سرويسهاي توزيع يافتگي ميباشد كه از طريق يك مدل كاملا شيگرا و در قالب يك ساختار ORM كليه سرويسهاي عملياتي را به استفاده كنندهگان در لايههاي بالاتر ارائه ميدهد.
اين لايه متولي ارائه سرويس و خدمات اطلاعاتي و عملياتي به بخشهاي بالاتر ميباشد و بنابراين تمامي نرمافزارهاي ديگر سازمان با در نظر گرفتن استانداردهاي Integration به راحتي قادر به ارتباط و تبادل اطلاعات با اين سيستم خواهند بود.
- Presentation
اين لايه در واقع واسط كاربري و عناصر ارتباطي با كاربران در محيط عملياتي ميباشد. چنانچه در شكل نيز ديده ميشود در ساختار معماري واسطهاي متفاوتي از سيستم شامل Mobile Devices تا Smart Clientها در معماري سيستم ديده شده است كه در حال حاضر تنها واسط كاربري Smart Client كه يك واسط كاربري بسيار هوشمند و توانمند است در قالب يك پورتال توسعهپذير و توانمند در اختيار كاربران قرار داده ميشود.
- استفاده از الگوي توزيع يافتگي
- معماري Rich Client
براي كاربردهاي معمولي با تعداد Client كم (بطور عمده Smart Client) كليه بخشهاي نرمافزار بر روي تمامي Clientها Deploy ميشود و هر Client بطور مستقيم قابل اتصال به بانك اطلاعاتي ميباشد. اين راهكار براي سازمانهاي كوچك با تعداد كاربر كم مناسب میباشد.
- معماري Application Server
در اين معماري بخش سرويسدهنده اين سيستم بر روي سرور و بخش Client آن (تنها لايه Presentation) بر روي Clientها كپي ميشود (عمليات نصب بر روي Client ها با استفاده از Click Once بصورت اتوماتيك و بدون نياز به نصب توسط عامل انساني انجام ميشود و در واقع اين Smart Clientها از اين حيث هيچ تفاوتي با Web Client ندارند). در اينحالت تمامي فعاليتهاي پردازشي سيستم بر روي سرويس دهنده انجام ميشود و Clientهاي متفاوت به راحتي قابليت كار با سرويس را به يك شكل خواهند داشت.
در اين فضاي كاري كاربر از طريق كارتابلهاي قابل دسترس توسط وي ميتواند برنامهریزی روزانه شامل پيامهاي سازماني، سررسيد و وظايف تنظيم شده براي خود را مشاهده و پيگيري كرده و با ساير عناصر سازمان تعامل داشته باشد .
- معماري Distributed Multi-Tier
براي سازمانهایي كه داراي حجم بالایي از استفاده بوده و يا تعداد زیادی كاربر همزمان از سيستم استفاده ميكنند كه باعث بار بالاي سرور ميشود، سيستم قادر است با معيارهاي توزيع يافتگي كامل در ارائه سرويس تنظيم شود. در اين حالت سازماندهي سيستم ميتواند معماريهاي متفاوتي از Clustering و يا Load Balancing را متناسب با نياز سازمان پوشش دهد.
3. استفاده از الگوي توسعه پذيري در اطلاعات و فرآيندها
- استفاده از زيرساخت توسعه يافته اطلاعاتي براي سازمان
راهكار نرمافزاري ERP سامانه یکپارچه نفیس براساس يك نگاه مبتني بر مدل طراحي و پيادهسازي شده است و در سيستمهاي مختلف ردپاي مدلهاي مختلف قابل مشاهده است. بدينجهت يك ابزار پيشرفته و با قابليتهاي مناسب براي مدلسازي در اين مجموعه قرارداده شده است تا مدلهاي مختلف مورد نياز را بتوان به صورت كاملا گرافيكي ترسيم نمود.
مدلهایي كه در اين ابزار توليد ميشوند به صورت كاملا يكپارچه با دادههاي سازماني عمل مينمايند.
- طراحي واسطهاي انعطاف–پذير براي تبادل خدمات ميان ماژولهاي مختلف
در برخي از حوزههاي عملياتي سازمان بخصوص در حوزه توليد، تداركات و فروش متناسب با نوع فعاليت سازمان يا صنعت نحوه انجام عمليات به شكل متفاوتي انجام ميشود و از آنجا كه امكان توليد راهكاري كه تمامي موارد را پوشش دهد بسيار پيچيده و بعضا ناممكن ميباشد. لذا در راهكار نرمافزاري ERP سامانه یکپارچه نفیس با مرز بندي حوزههاي متفاوت در مرز اين حوزهها از واسطهاي نرمافزاري انعطافپذير استفاده مي شود كه استقلال ميان ماژولهاي دو حوزه را در چارچوپ استاندارد تعريف شده براي واسط تامين ميكند. با اين امكان در واقع امكان بازنويسي و يا تغيير هر يك ماژولهاي موجود براي يك صنعت خاص و جايگزيني آن بجاي ماژول موجود وجود خواهد داشت.
بطور مثال عمليات برنامهريزي از ماژول مسيريابي خط توليد استفاده ميكند كه براي هر صنعت از صنعت ديگر متفاوت ميباشد. با استفاده از ويژگي بالا قادر به توليد ماژول برنامهريزي خواهيم بود كه متناسب با صنعت مورد نظر از ماژول Routing مربوط به آن صنعت استفاده خواهد كرد.
- توسعه پذيري اطلاعات با استفاده از مشخصههاي پويا
بسياري از اشيا سازماني، در سيستمهاي مختلف داراي مشخصاتي هستند كه اولا بين سازمانهاي مختلف داراي تنوع زيادي هستند، ثانيا فرآيندها و يا قوانين اصلي سازمان بر اساس آنها تعريف نميشوند و تنها ارزش ذخيره و بازيابي و گزارشگيري دارند.
در چارچوب نرمافزاري سامانه یکپارچه نفیس امكاني قرار داده شده است تا بتوان براي تمامي اشيای اطلاعاتی سازماني اين مشخصات تكميلي را تعيين نمود و آنها را نيز همزمان با ورود اطلاعات شئ سازماني، وارد نمود. از اين مشخصات تكميلي ميتوان در جستجوهاي مختلف استفاده کرد. با استفاده از اين امكان ميتوان اشيا سازماني را براي سازمانها تا حد بالایی شخصيسازي نمود.
- ارائه خدمات و سرويسها در يك محيط كاري پويا و توسعه پذير در قالب پورتال سازماني
بر طبق بررسيهاي انجام شده توسط مراكز استاندارد تحقيقات بازار تعدد محيطهاي كاربري در نرمافزارهاي سازماني موجود سردرگم كردن كاربران استفاده كننده از سيستم شده و Authentication موجود در هر يك از اين سيستمهاي در زمان سويچ کردن بين اين نرمافزارها زمان زيادي از كاربران را صرف ميكند.
اين فضاي كاري يك فضاي توسعه پذير ميباشد و سازمان با توليد سيستمهاي داخلي قادر خواهد بود از طريق اين واسط يكپارچه آنرا در اختيار كاربران مورد نظر در سازمان قرار دهد.
- زبان پيادسازي اين نرمافزارها Net C# 8.0 در محيط Visual Studio 2019 میباشد.
- راي پيادهسازي واسط كاربري سيستم از معماريهاي CAB و SCSF استفاده شده است. اين معماريها يكپارچگي در سطح واسط كاربري را مابين سيستمهاي مختلف تضمين مي نمايند.
- فرایند تولید تمام سیستم ها از طریق زیرساخت تولید نرمافزار Azure DevOps 2019 انجام میشود. تمام تکنولوژی های کنترل کد، کنترل نسخه، کنترل کیفیت نرمافزار و فرایندهای تولید نرمافزار توسط TFS کنترل میشود و کاملا قابل پیگیری است.
- راي پياده سازي Workflow از Microsoft Workflow استفاده شده كه بر روي Net Framework 4.8 ارائه شده است.
- براي نصب اتوماتيك نرمافزارها از مكانيزم Click Once استفاده شده است. اين مكانيزم پيشرفته باعث مي شود تا كليه ايستگاههاي كاري با نصب نسخه جديد به صورت اتوماتيك بروزآوري شوند. و البته با استفاده از اين قابليت نصب اوليه نرمافزار بر روي ايستگاههاي كاري نيز مي تواند از طريق Browser انجام شود.
- براي ارتباط مابين ايستگاههاي كاري و Application Server از مكانيزم Remoting بر روي بستر TCP/IP استفاده شده است، بنابراين تنها ارتباط لازم بين ايستگاه كاري و Application Server فقط يك شبكه TCP است.
- استفاده از تکنولوژی Parallel Programming یا الگوریتم های محاسباتی موازی برای محاسبات سنگین
- استفاده از تکنولوژی های جدید برای تحلیل اطلاعات. در تمام جدوال و گریدهای سیستم امکان تحلیل اطلاعات بوسیله Pivot Grid و یا همان Cube ها وجود دارد.
- استفاده از تکنولوژی Parallel Programming یا الگوریتم های محاسباتی موازی برای محاسبات سنگین
- امکان استفاده از تکنولوژی های تحلیل اطلاعات در تمام جدوال و گریدهای سیستم، بوسیله Pivot Grid و یا همان Cube ها وجود دارد.
- استفاده از تکنولوژی VMware Horizon برای ارتباط کاربران چند سایت جغرافیایی با سرورهای متمرکز با حداقل منابع زیرساختی و پشتیبانی از Load Balanced Network برای افزایش ضریب دسترسی به سیستم از راه دور
- استفاده از تکنولوژی High Availability در زیرساخت Hypervisor به منظور کاهش نزدیک به صفر Down time دسترسی به منابع و امکان Maintenance تجهیزات زیرساخت بدون قطعی سرویس
- گردش کار(Work flow customizer)
- مجوز دهی (مدل امنیتی)
- ابزار فرمول نویسی
- موتور پرس و جوی سفارشی (Query Builder Engine)
- گزارش ساز پویا
- تحلیل گر پویا
- ورودی و خروجی ساز پویا
- رویداد نگاری
- شیء ساز پویا
- مشخصههای سفارشی (Custom Properties)
- اطلاعات پایه زیرساخت
- کارتابل هوشمند
- موتور ساخت قوانین روی رویدادها (Rule Engine)
- ارتباط هوشمند
- مدیریت مستندات روی اشیا (Document Builder Engine)