نرم افزار پرگار آخرين دستاورد شرکت بريد سامانه نوين در عرصه سازمان الکترونيک است.اين سيستم با درنظر گرفتن حداکثر قابليت توسعه زير سيستمها با در نظر گرفتن امنيت بالا در محيط وب طراحي شده است. بدين منظور مولفه هاي ( Component ) متعددي در معماري آن ديده شده است که در ادامه به شرح آن خواهيم پرداخت.

معماری سرویس گرا (Service Oriented Architecture) رهيافتی برای ساخت سيستم های توزيع شده است كه كاركردهای نرم افزاری را در قالب سرويس ارائه می كند. اين سرویس ها هم توسط ديگر نرم افزارها قابل فراخوانی هستند و هم برای ساخت سرويس های جديد مورد استفاده قرار می گيرند، اين معماری برای يكپارچه سازی فناوری ها در محيطی كه انواع مختلفی از سكوهای نرم افزاری و سخت افزاری وجود دارد ايده آل است. اين معماري داراي مشخصات زير است:

  1. استفاده از استانداردهاي مستقل از فناوری و مورد توافق براي ارائه مولفه هاي نرم افزاري تحت قالب سرويس
  2. معرفي كننده يك روش مشخص و مورد توافق براي تعريف و ارتباط بين مولفه هاي نرم افزاري
  3. مولفه هاي نرم افزاري منفرد مي توانند در ساخت ديگر نرم افزارها استفاده شوند
  4. مكانيزمي براي يكپارچگي اجزاء از قبل تعريف شده براي ساخت نرم افزارها به جاي توسعه و پياده سازي آنها
  5. مي تواند به نرم افزاهاي خارج سازماني نيز مانند انواع داخلي آن متصل شوند.

مجموعه سيستمهاي پرگار نيز براي بهره گيري ار مزاياي فوق در طراحي معماري خود اين رويكرد را برگزيده است. علت اين انتخاب عبارتست از:

  1. افزايش انعطاف پذيري كسب و كارها با رويكرد سرويس محور
  2. قابليت ايجاد سريع فرآيندهاي جديد و ترکيب مولفه هاي نرم افزاري
  3. افزايش توان سازگاري با تغييرات بازار با وجود سرويس
  4. بهبود ارائه خدمات به مشتريان به دليل عدم نگرانی از توان پشتيبانی فناوري اطلاعات از تصميمات جديد کسب و کار
  5. تطبيق سيستم ها بر طبق فرآيندهاي كسب و كار و نه برعکس
  6. اتصال به داده ها و سرويس هاي خارج از سيستم
  7. ارائه و استفاده از بهترين گزينه ها از ميان مجموعه اي از سرويس هاي قابل استفاده

يكي از روشهايي كه معماري هاي سرويس محور را ميتوان طراحي نمود استفاده از معماري مبتني بر پيام(Messaging Architecture) است.

اين معماري داراي مزاياي زير است:

  1. توزيع يافتگي و عدم تمركز: با استفاده از اين معماري سيستمهاي مختلف مي‌توانند بر روي ماشينهاي مختلف راه اندازي و توزيع شوند.  مطابق اين معماري زيرسيستمها ذاتاً مقياس پذير(Scalable) و قابل توزيع (Distributable) و تكامل پذير(Evolve-able) هستند.
    اين معماري ما را قادر مي‌سازد كه بتوانيم سيستمهاي بزرگ سازماني(Enterprise Systems) را توزيع كنيم، بسته به ميزان استفاده مقياس آنها را افزايش دهيم و آنها را كاملتر نمائيم.
    1. سيستمهايي كه با اين معماري توليد مي‌شوند مي توانند بر روي هر تعداد كامپيوتري كه لازم است، توزيع شوند. بنابراين يك سرويس كه از روي يك كامپيوتر شروع مي‌شود مي تواند براي اجرا بر روي چندين كامپيوتر ديگر توزيع شود. اين توزيع يافتگي باعث اقزايش قابليت اطمينان سيستم و پايداري آن مي‌شود. براي توزيع اين سيستمها نياز به پيكربنديهاي مرسوم در شبكه نيست و اين معماري باعث مي‌شود تا سيستمها به راحتي و بدون نياز به تغيير در ساختار شبكه ها توزيع شوند.
    2. سيستمهايي كه با اين معماري توليد مي‌شوند به همان سادگي كه توزيع مي‌شوند مي توانند مقياسهاي بيشتري را نيز تحمل كنند. به دليل اينكه اين زيرسيستمهاي در يك فضاي اشتراكي از كامپيوترها اجرا مي‌شوند، افزايش بار به صورت اتوماتيك بين كامپيوترها توزيع شده و واسط بيشتري را پاسخ دهند.
  2. با توجه به ويژگي هاي اين معماري و ساختار دانه‌دانه اي(Granular)  آن تغييرات لازم در سيستمها بسيار ساده‌تر، مطمئن‌تر، و سريعتر خواهد بود.
  3. با توجه به ويژگي هاي اين معماري قابليتهاي امنيتي سيستمها در همه لايه‌ها گسترش پيدا مي‌كند و تا پايينترين سطوح اطلاعاتي مي توان دسترسي لازم را تعريف نمود.

 

مدل ESB  براي اولين بار در سال 2002 به جهان معرفي شده است و در آن بستر ارتباطي بين نرم افزارهاي سرويس گرا يک خط ارتباطي منطقي ( BUS ) که همانند مدل سخت افزاري خود در بردهاي اصلي کامپيوترها عمل ميکند.

در اين مدل هر نرم افزار يا زير سيستم که در اين مدل به آن End point يا Package اطلاق ميشود ، مجموعه اي از پيامها را بر روي اين Bus قرار ميدهد. اين پيامها ، از سه نوع دستور  ( Command ) يا درخواست اطلاعات ( Query ) و يا يک رخداد ( Event ) ميباشند.

زير سيستمهاي مختلف با توجه به دريافت هر يک از اين نوع از داده ها اقدام به ارايه سرويسهاي مورد نظر به يکديگر مينمايند.

messaging-n1

در مدل توسعه يافته تر اين معماري ، صف انواع پيام از هم تفکيک ميشود. اين عمليات که به Command Query Responsibility Segregation شناخته ميشود در معماري نرم افزار پرگار در نظر گرفته شده است.

در حال حاضر مهمترين مشكلاتي كه سيستم‌هاي نرم افزاري تحت وب دارند عبارتند از:

  1. نيازمند تنظيمات ويژه‌اي در مرورگرها هستند. حتي در بعضي از موارد نيازمند كاهش سطح امنيتي مرورگرها نيز هستند.
  2. در مرورگرهاي مختلف كار نمي‌كنند. و به يك و يا چند مرورگر خاص و يا نگارشهاي خاصي از مرورگرها وابسته هستند.
  3. همه بخشهاي سيستم در محيط وب قرار ندارد و بعضا نياز به نصب مولفه‌هايي بر روي ايستگاه كاري كاربران دارند.
  4. بعضا قابليتهاي كاربردي محيط ويندوز مانند استفاده از كليدهاي ميانبر و ... در محيط وب نرم‌افزارها وجود ندارد.

سيستم پرگار از استانداردها و تكنولوژي هايي بهره گرفته است كه اين مشكلات را برطرف مي‌نمايد. به طوريكه:

اولاً نيازمند هيچ تنظيم خاصي در محيط مرورگر وجود ندارد مگر در موارد خاصي كه نيازمند بهره‌گيري از سخت‌افزارهاي جانبي باشد كه در استانداردهاي وب وجود ندارد.(به عنوان مثال براي استفاده از اسكنر و يا توكن‌هاي امنيتي و ...)

ثانياً سيستم بر روي تمامي مرورگرهاي موجود به درستي كار مي‌كند. و به هيچ يك از مرورگرهاي موجود وابستگي ندارد.

ثالثاً تمامي بخشهاي سيستم در محيط وب پياده سازي شده است و نيازمند نصب هيچ مولفه‌اي بر روي ايستگاههاي كاري نيست.

رابعاً سعي شده است كه مطلوبترين واسط كاربري براي كاربر در نظر گرفته شود و قابليتهاي پركاربرد مانند كليدهاي ميانبر و موارد مشابه در آن ديده شود.

سرعت رشد تكنولوژي در بخش سخت افزار و شبكه وضعيت استفاده از اين وسائل را در ميان كاربران به شدت توسعه داده است. به طوريكه استفاده از تبلتها و گوشيهاي هوشمند تقريبا عمومي شده است و در دسترس عموم مردم قرار دارد. از اينرو سيستم پرگار طوري طراحي شده است كه بتواند سرويس خود را بر روي تمامي Platformهاي موجود ارائه دهد. به اين ترتيب سيستم پرگار بر روي كليه تبلتها و گوشيهاي هوشمند موجود در بازار با سيستم عامل‌هاي ويندوز، اندرويد و IOS قابل استفاده است و واسط كاربري آن به صورت اتوماتيك خود را مطابق اندازه اين وسائل تنظيم مي‌نمايد.

در حال حاضر دنياي فناوري با رشد بسيار سريعي همراه است. بنابراين نرم افزارهايي در بازار مي‌توانند موفق باشند كه بتوانند بهره لازم را از رشد تكنولوژي در عرصه‌هاي مختلف ببرند. از اينرو معماري آنها بايستي طوري طراحي شود كه كه همزمان با تغييرات تكنولوژي امكان استفاده از آنها فراهم شود. در معماري سيستم پرگار اين نيازمندي به خوبي طراحي شده است. بطوريكه بتوان همزمان با توسعه فناوري در بخشهاي مختلف بانكهاي اطلاعاتي، Service BUS ها، امنيت، واسط كاربري، سخت افزار و ... از مزاياي آنها در اين موارد استفاده نمود. و سيستم بتواند خود را متناسب فناوريهاي جديد بروزرساني نمايد. از طرف ديگر اقبال بخشهاي دولتي به مباحث متن باز باعث شده است كه در سيستم پرگار يا از مولفه هاي متن باز در معماري استفاده شود و يا اينكه امكان جايگزيني آنها با مولفه‌هاي متن باز تعبيه شده باشد. از اينرو با توجه به دو نيازمندي فوق تا جاي امكان وابستگي معماري به فناوريهاي خاص مديريت شده و تا جاي امكان از آن پرهيز شده است.

با گسترش استفاده از فناوري اطلاعات براي انجام ماموريتهاي سازماني و همينطور توزيع کاربران در پراکندگي جغرافيايي وسيع تر ، استفاده از واسط کاربري که نياز به نصب نداشته و از انواع ايستگاههاي کاري در هر نقطه قابل دسترسي باشد يک ضرورت ميباشد.با توجه به گسترش استفاده از تلفنهاي هوشمند و تبلتها ، استفاده از مرورگر وب راهکار مناسبي خواهد بود.

نرم افزار پرگار قابليت نمايش واسط کاربري خود در تمامي مرورگرهايي که Java script را حمايت ميکنند دارا ميباشد.

نرم افزار داراي دو بخش Web server و مرورگر جهت نمايش واسط کاربري است. بخش Web server آن وظيفه دريافت اطلاعات از هر يک از دو طرف کاربر يا application server را بر عهده دارد. اطلاعات ذکر شده جهت نمايش در مرورگر و يا جهت پردازش در اختيار قسمت مربوطه قرار ميگيرد.

در قسمت مرورگر ها به جهت جلوگيري از تبادل داده هاي تکراري و استفاده بهينه از پهناي باند مورد استفاده ، از فناوري Single Page Application استفاده شده است.

در اين فناوري در يک صفحه وب فقط ازاطلاعات بخشهاي مورد نياز بين سرور و مرورگر تبادل ميشود و کل صفحه هر بار بازخواني نميشود.

Angular JS يکي از پيشرفته ترين روشهاي پياده سازي اين فناوري ميباشد که در نرم افزار پرگار از آن استفاده شده است.

سازمانهاي مختلف براي بهره‌برداري از سيستمهاي اطلاعاتي خود مجبور به بهره‌گيري از بانكهاي اطلاعاتي هستند. اما وجود سيستمهاي مختلف در سازمان باعث شده است كه بانكهاي اطلاعاتي مختلفي در سازمان استفاده شود. دليل اصلي اين موضوع وابستگي سيستمهاي رايج به بانك اطلاعاتي خاص است. اما تعدد اين بانكهاي اطلاعاتي و عدم وجود نيروي متخصص آنها در سازمانها باعث شده است كه هزينه‌هاي نگهداري سيستمها در سازمان تا حد زيادي رشد نمايد. براي رفع اين مشكل پرگار امكان بهره‌گيري از بانكهاي اطلاعاتي مختلف متناسب با شرايط و نيازهاي سازمان را دارد.

سيستمهايي كه در حوزه سازمانها اجرا مي‌شوند داراي مشخصاتي هستند كه در ذيل به برخي از مهمترين آنها شاره مي‌نمائيم:

  1. بيشتر آنها پيچيده بوده و داراي مسائل ناشناخته زيادي هستند. به دليل اينكه بسياري از نيازها پس از راه اندازي سيستمهاي‌ اطلاعاتي شكل مي‌گيرد.
  2. كار بر روي لبه تكنولوژي مسائلي را به دنبال دارد كه يكي از مهمترين آنها استفاده از فناوري به روز و مدام در حال تغيير است.
  3. ايده‌ها و رويكردهاي نو در سيستمهاي اطلاعاتي بايد به سرعت بررسي شده و مي‌بايست بين راه‌حلهاي عملي و غير عملي بتوان سريع تصميم‌گيري نمود.
  4. بازخوردهاي مشتريان مي‌بايست با سرعت مناسبي در سيستمهاي اطلاعاتي اعمال شوند.
  5. تغييرات اين سيستمها به دليل تغييرات قوانين و دستورالعملها در سازمانها بسيار زياد است.
  6. اين سيستمهاي اطلاعاتي در مرور زمان بالغ مي‌شوند و بنابراين طراحي زودهنگام و كامل معماري از ابتدا امكان پذير نيست.
  7. براي ارائه يك محصول باكيفيت همكاري و هماهنگي كليه اعضاء تيم توسعه امري اجتناب ناپذير است.
  8. حصول رضايت مشتريان از سيستمهاي اطلاعاتي كار بسيار دشواري است. و اغلب از سيستمهاي اطلاعاتي موجود رضايت بالايي ندارند.
  9. درصد پروژه‌هاي شكست خورده بسيار زياد است.
  10. كيفيت نرم‌افزارها در حوزه سيستمهاي اطلاعاتي پائين است.
  11. ميزان بهره‌برداري مشتريان از سيستمهاي اطلاعاتي بسيار كم است.
  12. هيچكس مسئوليت نتايج شكست اين قبيل از سيستمها را بر عهده نمي‌گيرد.
  13. نيازهاي مشتريان سروقت و با كيفيت و قيمت مناسب انجام نمي شود.

مسائل فوق ما را بر آن داشت كه از متدلوژيهاي نوين در اين عرصه براي رفع مشكلات فوق استفاده كنيم. و از اين رو پرگار با استفاده از متدلوژي چابك توليد نرم افزار به نام اسكرام توليد شده است. مزايايي كه متدلوژي اسكرام براي پرگار به ارمغان مي‌اورد عبارتست از:

  1. خوشنودي مشتريان
  2. بهبود بازگشت سرمايه
  3. كاهش هزينه
  4. كسب سريع نتايج
  5. اطمينان به موفقيت در دنياي پيچيده
  6. لذت بيشتر

رشد سريع استفاده از سخت افزارهاي همراه مانند تبلت و گوشيهاي هوشمند و از طرف ديگر رشد استفاده از فضاي رايانش ابري و استفاده از فناوريهاي SaaS مسئله ميزان پهناي باند را تبديل به يك چالش جدي مي‌نمايد. براي اينكه نرم‌افزارهاي كاربردي بتوانند از طريق اين سخت افزارها و يا در محيط SaaS و يا رايانش ابري مورد استفاده قرار گيرند نياز است تا ميزان پهناي باند مورد نياز خود را با شرايط موجود در كشور تطبيق دهند. از اينرو در معماري مجموعه سيستمهاي پرگار اين محدوديت در نظر گرفته شده است بطوريكه سعي شده است تا از حداقل پهناي باند مورد نياز در اجراي سيستمها استفاده شود. اين قابليت باعث مي‌شود تا نرم افزارهاي پرگار بر روي پهناي باند مورد دسترس در كشور به راحتي قابل اجرا باشند و سازمانها را از صرف هزينه‌هاي زياد تامين پهناي باند تا حد مناسبي راحت نمايد.

نرم افزار پرگار را از چند منظر ميتوان مورد مطالعه قرار داد. ابتدا ساختار فيزيکي اين نرم افزار را مورد بررسي قرار مي دهيم.

همانطور که در شکل زیر مشاهده ميشود اين نرم افزار از ۵ مولفه متمايز تشکيل شده است که البته اين مولفه ها را ميتوان به صورت متمرکز يا مستقل از هم نصب نمود.

Workflowengine

اين مولفه شامل سرور يا سرورهاي پايگاه داده ميباشد. در طراحي نرم افزار پرگار سعي شده است تا وابستگي به نوع و فناوري استفاده شده در هر يک از مولفه ها به حداقل برسد. در حال حاضر با توجه به اينکه لايه هاي بالاتر نرم افزار که در قسمتهاي بعد توضيح داده خواهد شد امکان اتصال به دو پايگاه داده شناخته شده يعني Microsoft SQL Server و ORACLE را فراهم نموده است ، اين مولفه يکي از اين دو پايگاه داده ذکر شده خواهد بود و در صورت نياز ميتوان فناوري ديگري را در اين خصوص مورد بررسي قرار داد.

استقلال پايگاه داده نرم افزار پرگار از ساير داده هاي سازمان ضروري نيست ولي شرکت بريد سامانه نوين اين روش را توصيه نمينمايد.

اين مولفه از نرم افزار به صورت کاملا امن وبدور از ديد شبکه اي کاربران نصب ميشود.

همانطور که از نام اين مولفه مشخص است ، وظيفه پردازش و دسترسي اطلاعات به عهده اين بخش از نرم افزار است. با توجه به حجم پردازش و نياز احتمالي اين دسته از سرورها به منابع سخت افزار مانند حافظه( RAM ) و پردازشگر (CPU  ) توصيه ميشود اين دسته از مولفه ها به صورت مستقل بر روي سرور نصب شوند. با توجه به قابيلت پيش بيني شده ، متناسب با نياز سازمان ميتواتن زير سيستمها ( Packages or End points ) بر روي Application server هاي متعدد و يا به صورت متمرکز نصب شوند.

با توجه به پياده سازي صورت گرفته ( .Net ) ، در حال حاضر اين نوع سرورها مبتني بر Microsoft Windows Servers ميباشد.

اين مولفه از نرم افزار به صورت کاملا امن وبدور از ديد شبکه اي کاربران نصب ميشود.

اين مولفه وظيفه هدايت درخواستهاي کاربران به Application Server و دريافت اطلاعات پردازش شده از آن براي کاربران را بر عهده دارد. با توجه به معماري اين گونه سرورها امکان توزيع درخواستهاي کاربران بين چندين Web server وجود دارد.

فناوري بکار رفته در اين مولفه .Net  بوده و در حال حاضر اين بخش از سرورها مبتني بر Microsoft Windows Servers ميباشند.

Active Security Token Service (Active STS)

براي تامين امنيت و اعتبار سنجي ورود کاربران به نرم افزار و تسهيل در ارايه امن سرويس Single Sign On ، مولفه Active STS  و مکمل آن Passive STS در اين معماري پياده سازي شده است. اين پياده سازي مبتني بر استاندارد Windows Identity Foundation  ميباشد.

اين مولفه نيز از ديد کاربران شبکه بدور بوده و امکان دسترسي به آن فقط از طريق Passive STS  ميسر خواهد بود.

با توجه به فناوري بکار رفته ( .Net ) ،‌اين سرور مبتني بر Microsoft Windows Servers ميباشد.

Passive Security Token Service (Passive STS)

مولفه مکمل Active STS ميباشد و وظيفه آن دريافت شناسه کاربري و رمز عبور از کاربر و ارسال امن آن به Active STS  و دريافت Token کاربر از آن و ارايه آن به کاربر ميباشد.

اين مولفه بر روي سروري که قابليت Web server  را دارا ميباشد نصب ميشود و واحد فناوري اطلاعات سازمان براي برقراري امنيت بيشتر ميتواند از پروتکل SSL در ارتباط با کاربران در آن استفاده نمايد.

اين مولفه در ديد کاربران خواهد بود واسط کاربري در مقاطعي که نياز به اعتبار سنجي کاربران داشته باشد به آن مراجعه خواهد نمود.

با توجه به استفاده از .Net در پياده سازي اين قسمت ، اين مولفه بر روي سرورهاي مبتني بر Microsoft Windows Servers ميباشد.

کاربران براي استفاده از نرم افزار از مرورگرهاي مختلف اينترنت استفاده خواهند نمود. کليه مرورگرهايي که Java script را حمايت کنند ميتوانند به عنوان واسط کاربري نرم افزار استفاده شوند.

فناوري بکار رفته در اين بخش Angular JS ميباشد.