مراحل طراحی و توسعه پروژه های وب در پرسینا
امروزه وب يكي از مهمترين، اجتناب ناپذيرترين و در عين حال اقتصادي ترين روشها براي اطلاع رساني، تجارت، آموزش و ... ميباشد كه اهميت و كاربرد آن بخصوص در ميان افرادي كه خود بعنوان ميزبان از آن بهره برده اند غير قابل انكار است. با رشد تصاعدي و توسعه شبكه هاي رايانه اي در سراسر دنيا، استفاده از پايگاه هاي وب در محيط شبكه به همان ميزان افزايش يافته است و اين فناوري تغيير و تحولات بسياري را در زندگي روزمره مردم موجب شده است. تا قبل از توسعه شبكه ها طراحي برنامه هاي رايانه اي محدود به استفاده توسط يك سامانه انجام ميشد كه تحت عنوان Desktop Application مورد استفاده قرار ميگرفتند، همزمان با شكل گيري بستر وب در شبكه هاي رايانه اي طراحي برنامه هاي رايانه اي نيز به صورتي كه در اين محيط قابل استفاده باشند به سرعت تغيير جهت داده و افزايش اين برنامه ها موجب محبوبيت بيشتر وب در ميان كاربران شده است. وب كه عامل اصلي ساختار اينترنت ميباشد اكنون بدليل كاربرد مفيد و كاربران بسيار زياد آن به يكي از موئثرترين روشهاي ارتباطي تبديل شده و همين امر موجب نياز روز افزون به برنامه هاي كاربردي تحت وب شده است.
همزمان با توسعه وب، توليد نرمافزارهاي تحت وب نسبت به نرم افزارهاي Desktop
Application اهميت بيشتري پيدا كرده است، در اين ميان توليدكنندگان نرمافزار در
سراسر جهان اقدام به ترويج برنامههاي توسعه يافته (Distributed Applications)
نمودند، پرسینا نيز در ايران جزو اولين شركتهاي توليد كننده نرم افزارهاي تحت وب
ميباشد كه با برنامه ريزي بلند مدت و تشكيل يك تيم خلاق بطور تخصصي در اين زمينه
متمركز شده و اكنون پس از چند سال فعاليت و تحقيق و توسعه در روند اجراي اين پروژه
ها به عنوان يكي از توليدكنندگان تخصصي نرمافزار هاي تحت وب در ايران مطرح مي
باشد.
- بهره مندي از كارشناسان متخصص
- سرمايهگذاري در امر تحقيق و توسعه (R&D)
- خلاقيت و نوآوري
سه معيار مهم موفقيت پرسینا در توليد نرم افزارهاي تحت وب ميباشد. بهره مندي از كارشناسان متخصص در اين زمينه موجب رعايت اصول و استانداردهاي لازم در انجام پروژه ها ، تحقيق و توسعه قبل و در حين انجام پروژه ها امري ضروري و خلاقيت و نوآوري بخصوص در بخش توليد و آناليز سيستمها عملكرد بهتر و كارايي بيشتر نرم افزارهاي توليد شده پرسینا را موجب شده است
سيستم عامل تحت وب
امكان ارتباط و Relation بين Kernel اصلي سيستم توسط لايه مياني كه وظيفة
همگامسازي يا Synchronize نمودن Application با Kernel اصلي را دارد، انجام مي
پذيرد. اين لايه كه از تعدادي Interface تشكيل شده است بصورت يك لايه مياني در بين
دو لايه اصلي عمل مينمايد. از ويژگيهاي قابل ذكر Kernel مي توان به موارد ذيل
اشاره نمود:
- توسعه پذيري
- امنيت
- سرعت
- تداوم در محيطهاي متفاوت
توسعه پذيري
هسته ذکر شده كه در تمامي محصولات پرسینا مورد استفاده قرار گرفته است، باعث شده كه
محصولات مختلف بصورت برنامههايي كه در يك سيستم عامل قرار ميگيرند عمل نموده و حتي
بتوان از چند محصول در يك مکان و بصورت همزمان استفاده نمود، با توجه به اينکه
مغايرتي با يكديگر ايجاد ننمايند.
هسته اصلي (Kernel) پردازش هاي مختلف و عملكرد سيستمها را مديريت نموده و از مغايرت بخشهاي مختلف که در يک نرم افزار قرار گرفته اند جلوگيري مي نمايد
امنیت
تقسيم بندي و توسعه پذير نمودن سيستم به بخشهاي مختلف باعث ميشود تا نظارت و مديريت بر آن بخش به ميزان قابل توجهي افزايش يابد، اين مديريت و نظارت باعث شده كه به لحاظ امنيتي، نرم افزارهاي توليد شده داراي بازبيني قابل ملاحظه اي باشند و تا حد امكان تمام نكات امنيتي در اين هسته رعايت شود و بدليل اينكه تمام نرمافزارها مبتني بر اين هسته (Kernel) اصلي ميباشند، تمامي موارد امنيتي ذكر شده در اين هسته در نرمافزارهاي زير مجموعه به ارث ميرسد و وجود لايههاي متفاوتي كه در معماري آن تعبيه شده است باعث شده كه در هر لايه بخش نظاره گري وجود داشته باشد كه خود از لايههاي اصلي امنيت و هسته اصلي نشأت ميگيرند.
بطور مثال لايه Data Access Logic Component كه كار حساس ارتباط با بانك اطلاعاتي را دارا ميباشد خود پيش از اتصال به هر لايه ديگري ميبايست از فيلتر امنيتي ديگر عبور نمايد تا تمام مواردي كه امکان دارد سيستم را از لحاظ امنيتي مورد نفوذ قرار دهد را كنترل نمايد:
استفاده از اين فيلتر موجب كنترل ورود و خروج ديتا در اين لايه شده و باعث جلوگيري از بسياري روشهاي مرسوم نفوذ مانند SQL Injection ميشود
سرعت
همانطور كه اشاره شد يكي از موارد مهم و اجتناب ناپذير در توليد و توسعه نرمافزارهاي تحت وب، بهره وري از سرعت مناسب ميباشد.
به همين سبب يكي از فاكتورهاي مهمي كه در زمان طراحي و آناليز Engine يا هسته اصلي (Kernel) ذکر شده نرمافزارهاي پرسینا قابل توجه مي باشد، دارا بودن سرعت مناسب و واكنش سريع سيستمها ميباشد.
ويژگي سرعت كه در هسته اصلي (Kernel) تعبيه و طراحي شده است به شرح ذيل ميباشد
الف) بهينه سازي خروجي
ب) بهينه سازي گرافيك
ج) View State
د) بهينه سازي ارتباط با بانك اطلاعاتي
ه) تقسيم بندي صفحات به چند بخش جداگانه كه سمت سرور اجرا شوند
و) XML HTTPReq
ز) Script Remoting
ح) توليد صفحات
الف) بهينه سازي خروجي
بدليل اينكه استاندارد تمام صفحات وب با فرمت HTML ميباشند، ليكن تمام خروجيهايي كه توسط نرمافزارهاي تحت وب پرسینا توليد ميشوند، در مرحله آخر با خروجي HTML نمايش داده خواهند شد، از طرفي به سبب اينکه اينگونه خروجيها براي نمايش نيازمند فراخواني (load) در رايانه كاربر ميباشند، هرچه حجم اين خروجيها كمتر باشد، سرعت نمايش و فراخواني آنها نيز به همان نسبت افزايش خواهد يافت، از اين رو در هسته اصلي (Kernel) سيستم فيلتري قرارداده شده است كه باعث ميشود به طور خودكار هر خروجي كه به نمايشگر ارسال ميشود قبل از مرحله فراخواني بهينه شده و خروجي آن را با حجم كمتر و به همان ميزان با سرعت بالاتري به نمايشگر ارسال نمايد.
عملكرد كلي اين بخش از سيستم به اين صورت است كه كاركترهايي كه بصورت Extra Character توليد شدهاند مانند White Space ها (فاصلههاي زائدي كه در خروجي HTML توليد ميشوند)، property هاي مازاد كه در Tagهاي HTML توليد شدهاند را حذف نموده و يا با كاركترهاي سبكتري جايگزين مينمايد كه اين امر موجب كاهش حجم خروجي هاي ارسال شده به نمايشگر تا سقف 70% ميباشد.
ب) بهينه سازي گرافيك
استفاده از گرافيك در محيط وب در بسياري از موارد امري ضروري ميباشد، اما استفاده از گرافيك بهينه سازي نشده باعث ميشود تا حجم بالا در هنگام فراخواني اطلاعات، موجب اختلال و كندي در بارگذاري اطلاعات شود از اين رو شايد بتوان بهينه سازي گرافيكي محتواي تحت وب را يكي از عوامل مهم به شمار آورد كه در صورت استفاده از نيروي انساني اين عمل مستلزم صرف زمان بسياري خواهد بود اما در تمامي پروژه هاي تحت وب پرسینا اين امر مهم به نوع ديگري بهينه سازي ميشود و حتي در بعضي موارد تصاوير متحرک 3 بعدي نيز به روشهاي مكانيزه بهينه سازي ميشوند، بعنوان مثال تصاوير متحرك كه متشكل از چند فريم متفاوت ميباشند هر كدام بصورت جداگانه بهينه سازي ميشوند تا در مجموع تصاوير متحرك ايجاد شده با حجم قابل قبولي در محيط وب قرار گيرند
ج) View State
در كدهاي منبع HTML ِ محتواي .aspx توليد شده با تكنولوژي .Net فيلدي از نوع Hidden دركد آنها موجود مي باشد كه مقدار آن با رشتهاي طولاني و سنگين ( بستگي به فيلدهاي آن محتوا دارد ) برابر است، اين فيلدها كه با نام فيلدهاي View State شناخته ميشوند توسط ASP.Net توليد و براي ذخيره سازي مقدار آيتمها و متغيرهاي آن محتوا مورد استفاده قرار ميگيرند كه در بسياري از موارد بدليل اينكه حجم بالايي در آن محتوا توليد خواهد شد، اين رشته كد شده باعث ميشود حجم صفحات تا 60% افزايش يابد، از اين رو در هسته اصلي مقدار اين فيلد بدون آنكه در صفحات HTML توليد شود در حافظه سرور باقي مانده و از فراخواني کند محتوا جلوگيري مي نمايد.
د) بهينه سازي ارتباط با بانك اطلاعاتي
ارتباط مداوم با بانك اطلاعاتي نيز يكي ديگر از مواردي ميباشد كه باعث اختلال در سرعت متعادل نرمافزارهاي تحت وب خواهد شد. از ديگر ويژگيهاي هسته (Kernel) نرمافزارهاي پرسینا اين است كه تنها با يك بار اتصال به بانك و فراخواني اطلاعات در يك حافظه موقت در سرور از اتصال مداوم و پيدرپي آن جلوگيري مينمايد، كه اين خود باعث افزايش سرعت عملكرد نرم افزار و همچنين کاهش ترافيك سرور و منابع آن خواهد شد.
ه) تقسيم بندي صفحات به چند بخش جداگانه كه سمت سرور اجرا شوند
وجود IFrame باعث ميشود از فراخواني مجدد بخشهايي از محتوا كه نياز به اجرا سمت سرور ندارند جلوگيري شود. بطور مثال يك خروجي كه از 4 قسمت تشكيل شده است مانند:
اگر در اين مثال بخش مياني نياز به اجرا سمت سرور داشته باشد تا بعد از اتصال به سرور اطلاعات آن بخش را ويرايش نمايد، در حالتي كه كل خروجي از يك بخش تشكيل شده باشد بخشهاي راست،چپ و بالا نيز با بخش مياني ميبايست مجدداً فراخواني شوند كه اين خود موجب کاهش سرعت در عمل رفت و برگشت ميشود اما درحالتي كه اين 4 بخش هريك بصورت مجزا در نظر گرفته شوند ، در اين صورت بخشهاي ديگر فراخواني نشده و همين امر موجب تسريع در روند عمل رفت و برگشت سمت سرور خواهد شد.
و) XML HTTPReq
استفاده از اين تكنولوژي موجب ميشود بدون فراخواني مجدد محتوا و بدون عمل اجرا سمت سرور( Server Side) ، داده هاي جديد جايگزين داده هاي قبلي شوند، اين تكنولوژي كه در هسته اصلي نرمافزار مورد استفاده قرار گرفته، علاوه براينكه از فراخواني مجدد تمامي محتوا جلوگيري نموده كه در سرعت نمايش داده هاي مورد نياز بسيار موءثر ميباشد، همچنين موجب كاربر پسند نمودن محيط نرم افزارها نيز ميشود
ز) Script Remoting
از روشهاي ديگري ميباشد كه همانند XML HTTPReq موجب عدم نياز به اجرا سمت سرور و فراخواني مجدد داده ها شده ، اما داده هاي جديد را با داده هاي قديمي در محتوا جايگزين مينمايد
ح) توليد صفحات
يكي ديگر از مواردي كه باعث تسريع سرعت نرمافزار شده است توليد صفحات با فرمت HTML ميباشد. در اصل صفحات توليد شده با فرمت كامل HTML همان صفحات پويا ميباشند كه قابليتها و تواناييهاي اصلي خود را دارا هستند و تنها فرمت آنها توسط سيستم در مرحله ذخيره سازي بصورت HTML انجام ميگيرد. اين امر موجب ميشود تا در هنگام بازخواني صفحات پردازشي سمت سرور انجام نگرفته و در نتيجه صفحاتي پويا با فرمت استاندارد HTML و بدون اتصال به بانك اطلاعاتي، با سرعت قابل ملاحظه اي بارگذاري شوند. بدليل جلوگيري از پردازشهاي تكراري سمت سرور جهت بارگذاري صفحات از اشغال منابع سرور مانند پردازنده ها و حافظه موقت نيز جلوگيري ميشود كه اين مهم در كاربردهاي پرترافيك و بزرگ بسيار حائز اهميت است
تداوم محيطهاي متفاوت
از ديگر محاسن هسته اصلي اين است كه در هر محيط تحت وب، اعم از Internet و يا Intranet قابل اجرا ميباشد. بدين معنا كه با وجود نظارت بر مجوز (license) نرم افزارها كه از طريق سرور مركزي در محيط اينترنت انجام ميگيرد، درصورتي كه كاربر قصد استفاده از نرم افزار را بدون اتصال به شبكه اينترنت داشته باشد ميتواند نرم افزار را در حالت اينترانت مورد استفاده قرارداده تابدين ترتيب نيازي به اتصال مداوم نرمافزار به اينترنت نباشد.
همانطور كه گفته شد بدليل اينكه هسته اصلي نرمافزار بصورت قابل توسعه طراحي شده است، امكان افزايش و يا هرگونه تغيير در هسته اصلي امكان پذير ميباشد
درواقع افزايش برنامههاي جانبي به هسته اصلي طوري توسعهپذير تعبيه شده است كه به سرعت ميتوان برنامه جانبي را بعد از توليد در هسته اصلي قرار داد و همراه نرمافزار موجود كه آن نيز در اين هسته موجود ميباشد را مورد استفاده قرار داد
فازهای ساخت یک نرم افزار سفارشی بطور خلاصه بشرح زیر می باشد:
فاز آغازین: بشتر بر فعالیتهای مدلسازی کسب و کار، نیازسنجی و تحلیل و طراحی استوار می باشد.
فاز تشریح: بیشتر بر فعالیتهای تحلیل، طراحی و پیاده سازی استوار می باشد.
فاز ساخت: بیشتر بر فعالیتهای تحلیل، ساخت، پیاده سازی و تست استوار می باشد.
فاز انتقال: بیشتر بر فعالیتهای استقرار و مدیریت پیکربندی استوار می باشد.
بخش برنامه نویسی سفارشی شرکت پرسینا، بر اساس اصول مهندسی نرم افزار و با استفاده از متدولوژی RUP اقدام به تولید یک نرم افزار خاص برای یک مشتری خاص می نماید. مراحل ایجاد یک نرم افزار و مسئولیت های شرکت از مرحله شناخت و آنالیز شروع می گردد. سپس عملیات طراحی و پس از آن پیاده سازی نرم افزار انجام خواهد شد. در انتها نیز مرحله نصب و راه اندازی نرم افزار در دستور کار قرار خواهد گرفت.
لازم بذکر است که در این فرآیند کارشناسان شرکت با توجه به شناختی که در مرحله اول از سازمان مشتری کسب می کنند و برنامه ریزی که انجام خواهد شد تا انتهای کار در کنار مشتری خواهند بود و با ارائه راهکارهای مختلف در مرحله راه اندازی سیستم، ریسک عدم پذیرش محصول از جانب مشتری را به صفر می رسانند.