خط تولید نرم افزار WISE

SPL Intro

هدف و جایگاه WISE

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

راه حل WISE با ایجاد یک معماری متمرکز و فراهم آورن مجموعه‌ای از ابزارها و محصولات تولید «سیستمهای سازمانی بزرگ مبتنی بر وب در بستر Java EE» را تسهیل و تسریع می‌نماید؛ در نتیجه در زمانی کمتر به محصولی ارزانتر ولی با کیفیت‌ تر تولید می‌گردد.

امکانات WISE در چهار محور ابزارها (Tools)، برنامه های کاربردی (Applications)، کتابخانه ها (Libraries) و دانش (Knowledge) ارائه می گردد.

مزایای استفاده از وایز

  • کاهش مخاطرات: وجود معماری متمرکز، ابزارها و دستورالعملهای اثبات شده موجب می‌شود پروژه به دلیل تصمیمات فنی نادرست دچار مخاطره یا تاخیر نگردد.
  • بهره‌وری در مدیریت سرمایه‌های انسانی: خط تولید نرم‌افزار موجب می‌شود کارهای تکراری حذف شود. پروژه با نیروی انسانی کمتری قابل انجام باشد. نیروهای ارشد بتوانند به جای مسائل فنی روی معماری و موضوع پروژه تمرکز کنند.
  • کاهش زمان پروژه: سرعت تولید توسط خط تولید نرم‌افزار از سرعت نوشتن کد توسط سریع‌ترین برنامه‌نویسان به مراتب بالاتر است!
  • کاهش هزینه‌های پروژه: کاهش زمان پروژه، کاهش نیروی انسانی پروژه، کاهش مخاطرات، اتکا به راه‌حلهای اثبات شده، وجود مولفه‌های آماده، دسترسی به به‌روشها و استاندارد‌سازی، باعث کاهش هزینه‌ها خواهد شد.
  • افزایش قابلیت نگهداری سیستم‌ها: وقتی سیستم‌ها به صورت سازگار و یک شکل تولید شده باشند، نگهداری این سیستم‌ها با دستور‌العمل‌های ساده‌تر و مشخص‌تر قابل انجام است.
  • سازگاری بالا و یکپارچگی در سیستم‌های تولید‌شده: تولید کد توسط خط تولید نرم‌افزار، اولین گام در راستای سازگاری و یکپارچگی بخشهای سیستم حول معماری متمرکز است.

ابزارها (Tools)

ابزارها می‌توانند در مراحل تحلیل، طراحی، پیاده‌سازی، تست، نصب، توسعه و پشتیبانی، در محیط تولید (Development Environment) یا در محیط عملیاتی (Production Environment) یاریگر اعضای تیم باشند. نمونه هایی از ابزارهای مورد نیاز به شرح زیر است:

  • تولیدگر پروژه (Project Generator)
  • تولیدگرهای کد برای تمامی لایه‌ها (Code Generator)
  • ابزارهای مدیریت دانش و مستندسازی (Knowledge Management)
  • ابزارهای تست و کنترل کیفیت
  • ابزارهای تحلیل کد (Code Analyser)
  • ابزار نصب محصول (Installer)
  • ابزار یکپارچه سازی مستمر (Continuous Integration)

برنامه های کاربردی (Applications)

هدف از WISE ایجاد راه حلی جامع برای تسهیل و تسریع تولید نرم‌افزارهای از خانواده «سیستم های اطلاعاتی سازمانی بزرگ» می‌باشد. برخی از امکانات و سرویسها در عمده نرم‌افزارهای تولید شده در این خانواده مورد نیاز می‌باشد. لذا WISE تعدادی برنامه کاربردی آماده نصب را در بر می‌گیرد که بسیاری از این نیازمندیهای مشترک را پوشش می‌دهند. برخی از این سرویسهای مشترک به شرح زیر است:

  • هویت‌شناسی مبتنی بر Single Sign On
  • مجاز‌شناسی متمرکز و منعطف با مدل‌های امنیتی Role based و Permission based
  • مدیریت کاربران، مدیریت گروه‌های کاربری، فعالیت‌های سازمانی و سطوح دسترسی
  • مکانیزم‌های رویداد‌نگاری
  • منو، یکپار‌چه‌سازی واسط کاربر
  • مدیریت ساختار سازمانی و سمتهای سازمانی
  • کارتابل واحد و مدیریت فرایندهای سازمانی
  • مدیریت اسناد

کتابخانه ها (Libraries)

WISE علاوه بر انتخاب و گردآوری مجموعه کامل و کارآمدی از کتابخانه‌های متن‌باز، کتابخانه‌های جدیدی را پیاده‌سازی و ارائه نموده است. این کتابخانه‌ها که شامل مجموعه ای از کلاسها و منابع مشترک می‌باشند، در یک روند تکامل و بلوغ چندین ساله، بستری کارآمد و مطمئن را مبتنی بر الگوهای طراحی و به‌روشها (Best Pratices) فراهم می‌نمایند.

  • واسط کاربر
  • پیاده‌سازی وب ‌سرویسها (REST و SOAP)
  • امنیت (رمز نگاری، امضای دیجیتال و ...)
  • مدیریت و اجرای قواعد کسب و کار (Business Rule Engine)
  • زمان‌بندی کارها (Scheduling)
  • تولید گزارشات (Report Engine)
  • صحت‌سنجی اطلاعات (Validation)
  • ارتباطات ناهمزمان بین مولفه‌ها (Messaging)
  • ثبت لاگ (Logging)
  • آزمون (Test)
  • کش کردن اطلاعات (Cache، In Memory Data Grid)

دانش (Knowledge)

مدیریت جریان دانش و مکانیزمهای آموزشی کارآمد اهمیت زیادی در کیفیت بهره‌برداری از هر فناوری دارند. همراه با خط تولید نرم‌افزار WISE مجموعه‌ای از دانشها ثبت شده و ارائه می‌گردد:

این دانش و اطلاعات در قالبهای متنوعی در اختیار بهره‌برداران WISE قرار می‌گیرد:

  • کلاسهای آموزشی
  • فیلمهای آموزشی چندرسانه‌ای
  • ویکی WISE
  • فرومهای پرسش و پاسخ

مولفه های وایز

نام توضیح
WISE SPL + WISE Core منابع و کلاسهای مشترک و زیرساختی
تسهیلات و تنظیمات برای به خدمت گرفتن فناوریهای متن باز
تولیدگر پروژه بر اساس Template های متنوع
تولیدگر کد از روی نمودارهای UML
WISE Portal پیاده سازی Single Sign on
پیاده‌سازی Single Window
مدیریت کاربران، ساختار سازمانی و دسترسیها
پیاده‌سازی سرویسهای امنیتی
WISE BPM موتور اجرای فرایندهای سازمانی مبتنی بر BPMN
طراحی فرایند مبتنی بر BPMN به صورت آنلاین
کارتابل متمرکز برای کاربران و سمتها
گزارشات آماری از وضعیت فرایندها و کارتابلها
WISE Installer ابزار نصب و به روزرسانی
نصب و پیکربندی JBoss در حالت Cluster
نصب مولفه‌ها روی Application Server
WISE Team Server

(WTS)

SVN و Git: به عنوان سرویس مدیریت نسخ
Nexus: به عنوان Maven Repository
SonarQube: تحلیل کد
Jenkins: سرور یکپارچه سازی مستمر و ترخیص و تجمیع مولفه ها
Wiki: مستندسازی و مدیریت دانش
Fitnesse: تست یکپارچگی، تست پذیرش
WISE Content Repository نگهداری فایلهای انبوه در ساختار درختی
تنظیم دسترسی روی فایلها و شاخه‌ها
مشاهده گر تصویر و PDF
تعریف انواع سند و پوشه
تعریف فراداده برای انواع فایلها و شاخه‌ها
جستجو روی مشخصات و فراداده‌ها
نگهداری اطلاعات فایلها به صورت رمز شده
WISE Proxy Server

(WPS)

توزیع بار جهت کلاسترینگ
کش کردن منابع استاتیک
پروتکل Https (SSL Offload)
فشرده سازی محتوا (Compression)
مونیتورینگ سرویسهای پشت Load Balancer
تنظیم فایروال Iptables