مفاهيم برنامه نويسی
| مفاهيم برنامه نويسی |
| چالش های موجود |
|
|
|
|
|
يک نرم افزار از مجموعه ای برنامه های جانبی و روتين ها تشکيل می گردد که بر اساس يک ساختار ماژولار با يکديگر مرتبط خواهند شد. نرم افزار نظير يک جدول (Puzzel ) بوده که که ازعناصر متفاوتی تشکيل و با در کنار هم قرار گرفتن آنها يک شکل صحيح که همانا هدف تعريف شده است ، نمايان خواهد شد. عناصرموجود در جدول(ساختار) فوق، بدرستی تصوير مناسبی از نرم افزار را در اختيار علاقه مندان ( کاربران ) قرار خواهند داد. با توجه به ماهيت عمليات فوق و نقش عناصر تشکيل دهنده با مجموعه ای از رويکردها و چالش ها برخورد خواهيم نمود. ۱ - محل نصب عناصر ؟ آيا بمنظور مشاهده تصوير مناسبی از يک نرم افزار، می بايست تمامی عناصر ذيربط، بصورت فيزيکی در مجاورت هم قرار گرفته و يا امکان مجاورت منطقی عناصر نيز وجود دارد؟ ۲ - محل اجرای عناصر ؟ بمنظوراجرای يک نرم افزار که از عناصر متفاوتی تشکيل شده است ،لازم است که تمامی عناصر مورد نظر در يک محل اجراء گردنند ؟ آيا بمنظور ارائه خدمات يک نرم افزار می بايست تمامی عناصر زير يک سقف فيزيکی ( سخت افزار خاص ) اجراء گردنند؟ آيا می توان بخش های متفاوتی از يک نرم افزار را در محيط ديگر اجراء و يک هدفمندی و همياری در اجراء را برای آنان تعريف نمود؟ ۳ - نحوه ارتباط عناصر ؟ با توجه به اينکه يک نرم افزار می تواند از عناصر و بخش های متفاوتی تشکيل گردد ، نحوه ارتباط اين بخش ها با يکديگر به چه صورت خواهد بود ؟ زمانيکه بخش های فوق بر روی يک سيستم نصب و اجراء می گردنند ، نحوه ارتباط به چه صورت است ؟ در صورتيکه بخش های مورد نظر بر روی سيستم های متفاوت نصب و اجراء می گردنند ، نحوه ارتباط آنها با يکديگر به چه صورت خواهد بود؟ سوالات فوق صرفا" مجموعه ای محدود از چالش های موجود در اين زمينه است . بمنظور ارائه پاسخ مناسب و علمی دراين خصوص ، " معماری نرم افزار " مطرح می گردد. بر اين اساس، معماری های متفاوتی با توجه به تنوع خواسته ها و مرور زمان ، بوجود آمده است . بخاطر داشته باشيم که برنامه های تحت وب نيز متکی بر يک نوع معماری خاص می باشند. |
| مفاهيم برنامه نويسی |
| انواع معماری توليد نرم افزار |
|
|
|
|
|
از بدو مطرح شدن نرم افزار تاکنون ، معماری های متفاوتی بمنطور طراحی و پياده سازی ارائه شده است . معماری های فوق از يکطرف برخاسته از امکانات و ماهيت سخت افزار ها در زمان خود و از طرف ديگر نمايانگر نوع و نگرش انتظارات طرح شده توسط کاربران است . بخاطر داشته باشيم که نرم افزار دارای ماهيتی پويا بوده و در هر زمان می بايست خود را با خيل عظيم نيازها و انتظارات جديد کاربران تطبيق نمايد. چراکه نرم افزار عصاره خواسته های انسانی بمنظور بالفعل شدن بر روی بستر سخت افزار در گذر زمان است . بديهی است از گذشته تاکنون، هم طيف خواسته های انسانی تغيير کرده و خواهد کرد و هم سخت افزارها دچار تغيير و تحول گسترده ای بوده و خواهند بود. در اين راستا لازم است نرم افزار نيز با رعايت کامل اصل انعطاف پذيزی ، پذيرای تمامی تحولات از گذشته تاکنون بوده و بتواند در هر زمان رسالت خود را بخوبی انجام دهد. بر همين اساس از گذشته تاکنون معماری های متفاوتی بمنظور طراحی و پياده سازی نرم افزار ارائه شده است . هر معماری دارای شاخص ها و ويژگی های منحصر بفرد خود بوده و نرم افزارهائی که با اتکاء بر هر يک از معماری های فوق پياده سازی می گردنند ، خصايص خود را از معماری بکارگرفته شده به ارث خواهند برد. در اين بخش به رفتارشناسی هر يک از معمارهای ذيل پرداخته تا از اين طريق زمينه های لازم بمنظور شناخت معماری بکارگرفته شده در برنامه های تحت وب فراهم گردد.
تاکنون مدل های متفاوتی از معماری فوق پياده سازی شده است . ۱ - پردازش های مبتنی بر ميزبان . مدل فوق بمنزله يک مدل سرويس دهنده / سرويس گيرنده تلقی نشده و مشابه مدل MainFarme است .
۲ - پردازش های مبتنی بر سرويس دهنده . در اين مدل سرويس دهنده تمامی پردازش های مربوطه را انجام و سرويس گيرنده مسئوليت ايجاد بخش رابط کاربر را برعهده خواهد د اشت.
۳ - پردازش های مبتنی بر سرويس گيرنده . تمامی عمليات بر روی سرويس گيرنده انجام خواهد شد. عمليات مربوط به بررسی صحت داده ها و ساير عمليات مربوط به منطق بانک های اطلاعاتی بر روی سرويس دهنده انجام خواهد شد.
٤ - پردازش های مبتنی بر همياری .در اين مدل سرويس دهنده و سرويس گيرنده بمنظور انجام يک فعاليت با يکديگر تشريک مساعی خواهند کرد.
معماری Client Server : Two Tier
معماری Client Server : Three Tier
|










موقعیت دشتچی