1. بالاخره مسابقه کاربر برتر با جوایز ارزشمند برای فعالترین کاربران!
    هر ماه ربع سکه بهار آزادی و چندین فلش مموری به کاربران برتر به انتخاب شما!
    برای اطلاعات بیشتر حتما به انجمن مسابقات و جوایز سر بزنید.
    رد اعلامیه

مقدمه اي بر برنامه نويسي تحت وب

شروع موضوع توسط Hamoon در ‏22 ژوئیه 2012 در انجمن زباله دان

  1. Hamoon

    Hamoon مهمان

    تاریخ عضویت:
    ارسال ها:
    0
    تشکر شده:
    0
    اينترنت شبکه ای از شبکه های مرتبط به يکديگر بوده که بر روی آن سرويس های متعددی بمنظور ارائه خدمات فعال می باشند. بدون شک سرويس وب يکی از مهمترين سرويس های موجود بر روی اينترنت است که بيشترين تاثير را در عموميت يافتن اينترنت در سطح جوامع بشری برعهده داشته است. وب در نگاه اول مانند يک سيستم اطلاعاتی توزيع شده است . در سيستم فوق اطلاعات ( با اشکال متفاوت ) بر اساس استانداردهای مربوطه و با يک ساختار مشخص قرار گرفته و با استفاده از ارتباطات تعريف شده بين اطلاعات می توان بسرعت و بسادگی از اطلاعات موجود استفاده کرد. ارائه دهندگان اطلاعات با پيروی از اصول موجود اطلاعات خود را در سيستم فوق قرار داده و جستجو کنندگان اطلاعات با استفاده از ابزارهائی خاص قادر به جستجو و دستيابی به اين اطلاعات خواهند شد. وب در سال 1991 توسط " تيم - برنرز لی " ابداع گرديد.

    شكل 1: مراحل پردازش اطلاعات يك فرم HTML
    * اطلاعات موجود در وب در حريم های اطلاعاتی با نام " صفحات وب " ذخيره می گردند. اندازه ونوع محتويات اين نوع صفحات کاملا" متغير بوده و نمی بايست در اين راستا يک صفحه وب را با يک صفحه کتاب مقايسه کرد گرچه شباهت های اندکی نيز بين آنها وجود داشته باشد.
    * محتويات يک صفحه وب می تواند : متن گرافيک صدا تصوير انيميشن و ... باشد. گستردگی و تنوع نوع اطلاعاتی که می توان در صفحات وب قرار داد يکی از مهمترين ويژگی های قابل توجه وب از ديدگاه ارائه دهندگان اطلاعات از يک طرف و استفاده کنندگان از اطلاعات از طرف ديگر می باشد.
    * صفحات وب از لحاظ فيزيکی فايل هایي هستند که توسط نرم افزارهای مربوطه بوجود آمده و دارای انشعاب "htm" و يا "html"" می باشند. برای ايجاد اين نوع صفحات می توان از تمام نرم افزارهائی که بنوعی قادر به ايجاد و ذخيره سازی يک فايل هستند استفاده کرد.( Notepad نمونه ای از اين نوع نرم افزارها است ). امروزه نرم افزارهای کاملا" حرفه ای برای ايجاد و مديريت صفحات وب توسط شرکت های نرم افزاری ايجاد شده است . FrontPage,Hotmetal,... نمونه هائی در اين زمينه می باشند.
    * پس از ايجاد صفحات وب در صورت نياز و استفاده عموم ( داخلی ، خارجی ) می بايست آنها را بر روی يک سايت ذخيره نمود. يک وب سايت مجموعه ای از صفحات وب را شامل می گردد.
    * ارائه دهندگان اطلاعات پس از آماده سازی صفحات وب و استقرار آنها بر روی يک وب سايت زمينه استفاده از اطلاعات فوق را برای استفاده کنندگان فراهم می نمايند. استفاده کنندگان با استفاده از نرم افزارهائی موسوم به " مرورگر" قادر به دستيابی به يک وب سايت و درخواست اطلاعات مورد نياز خود می باشند.
    * تمام صفحات وب دارای مجموعه دستورالعمل هائی هستند که نحوه نمايش اطلاعات مورد نظر را مشخص خواهد کرد. رايج ترين مجموعه دستورالعمل های نمايش در صفحات وب تگ های Html می باشند.

    معماري عمومي وب:

    براي تشريح بهتر برنامه هاي كاربردي تحت وب (Web based applications) مدرن و امروزي، معمولا آنها را به 4 لايه مستقل تقسيم مي كنند. لايه مشتري يا Client، لايه هاي مياني كه عبارتند از presentation و Business و در نهايت آخرين لايه كه عبارت است از لايه داده يا Database. معمولا لايه هاي مياني در يك لايه مجتمع شده و در نتيجه يك مدل ساده شده 3 لايه اي به دست مي دهند.

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

    معمولا دو گونه پياده سازي از لايه مشتري وجود دارد. در روش اول از هوشمند بودن كامپيوتر كاربر و قابليتهاي پردازشي آن استفاده اي نمي شود. هنگامي كه كاربر اطلاعات يك فرم را تكميل مي كند و يا درخواست صفحه خاصي را دارد، كليه عملياتهاي پردازشي در لايه هاي مياني انجام مي گيردو صفحه هاي جديدي كه حاوي نتايج اين پردازشها هستند براي او ارسال مي گردند. اين روش را اصطلاحا Dump HTML Client مي نامند.

    اما در روش دوم از هوشمندي كامپيوتر كاربر به خوبي استفاده مي شود. در اين روش برخي پردازشهاي خاص توسط كامپيوتر مشتري و مرورگر موجود بر روي آن صورت مي گيرد. در اين حالت كامپيوتر مشتري را Semi Intelligent Client مي نامند. براي انجام اين پردازشها معمولا از زبانهاي اسكريپت نويسي نظير vbscript و يا javascript استفاده مي شود. توانايي مرورگها در اينجا اهميت مي يابد.
    شكل 2: معماري سه لايه برنامه هاي كاربردي تحت وب
    لايه presentation وظيفه ارائه محتويات ديناميك صفحات وب را بر عهده دارد. روشهاي پياده سازي اين عمليات بر روي كامپيوترها (web server) متنوع است. تكنولوژيهاي مختلف نظير CGI, PHP, ASP, JSP, Servlet, .... لايه presentation معمولا درون برنامه هاي وب سرور نظير Apache web server و يا Microsoft IISو ... پياده سازي مي شود. وب سرورها توانايي دريافت و اجراي چندين درخواست از سوي برنامه هاي كاربردي لايه هاي ديگر و همچنين كاربران را به طور همزمان دارند. اين نرم افزارها بر اساس يك پيكربندي اوليه مي دانند كه درخواستهاي كاربر را بايد به كدام برنامه كاربردي ارجاع دهند.

    لايه Business بيشترين حجم عمليات يك سايت مدرن امروزي را انجام مي دهد. عملياتهاي نظير مديريت نشستها، مديريت دستيابي به بانكهاي اطلاعاتي و... از جمله اين عملياتها هستند. روشهاي گوناگوني براي پياده سازي اين لايه وجود دارد نظير استفاده از اشياي COM متعلق به شركت ميكروسافت و يا استفاده از متناظرهاي آن متعلق به شركت SUN. راه حلهاي قديمي نيز براي پياده سازي اين لايه وجود دارد نظير استفاده از CORBA Objects.برنامه هاي لايه Business معمولا درون برنامه هايي موسوم به Application Server پياده سازي مي شوند نظير Microsoft MTS, Oracle Application Server

    لايه Database يا لايه داده مسئول نگهداري اطلاعات است و مي تواند شامل مجموعه اي از اطلاعات به صورت بانكهاي اطلاعاتي مدرن يا فايلهاي ساده و ... باشد

    تكنولوژيهاي مختلف طراحي اسناد وب:

    در حالت كلي سايتهاي اينترنتي را مي توان به دوگروه ثابت (static) و پويا (dynamic) تقسيم كرد. براي طراحي هر كدام نيز ابزارهاي مختلفي وجود دارد.
    شكل3: مراحل پردازش درخواست سرويس گيرنده توسط سايت با ساختار ثابت
    در سايتهاي با ساختار ثابت همانگونه كه قبلا نيز گفتيم، محتويات به صورت يك سري صفحات وب HTML طراحي و روي سايت قرار مي گيرند.با هر درخواست براي يك صفحه مشخص، صفحه موردنظر براي سرويس گيرنده ارسال مي شود (شكل 3) اما در سايتهاي با ساختار پويا با هر درخواست سرويس گيرنده بر روي سرويس دهنده پردازشي به منظور ساخت صفحه مورد نظر صورت مي گيرد و نتيجه پردازش به صورت يك صفحه حاوي كدهاي HTML براي سرويس گيرنده ارسال مي شود. (شكل 4).
    شكل4: مراحل پردازش درخواست سرويس گيرنده توسط سايت با ساختار پوي
    در نهايت همانگونه كه در شكلهاي 4 و 3 نيز مشاهده مي شود آنچه كه براي سرويس گيرنده ارسال مي شود چيزي جز صفحه حاوي تگهاي HTML نيست. در ميان تكنولوژيهاي مختلفي كه وجود دارد مهمترين ها و پراستفاده ترين تكنولوژيها به شرح زير هستند:

    1-HTML

    اين تكنولوژي ساده ترين فرم انتشار اسناد در وب است.در اين تكنولوژي صفحات يك وب سايت به صورت ايستا كدگذاري شده و سپس انتشار مي يابند. اين روشي است که در بسياري از وب سايت‌هاي شخصي که در ابتداي پيدايش وب ساخته شده اند بکار رفته است. در اينجا توليد کننده با دانستن html و يا با استفاده از ابزاري که چنين کدهايي را توليد مي کنند، صفحات خود را مي سازد. براي يک وب سايت ساده با تعداد محدودي از صفحات ايستا شايد اين يک روش قابل قبول باشد.

    از مزاياي اين تكنولوژي مي توان به سادگي و عدم نياز به برنامه نويسي و آشنايي با زبان خاص كدنويسي اشاره كرد. علاوه بر اين پشتيباني گسترده اين روش توسط نرم افزارهايي كه قادر به توليد اينگونه صفحات از طريق تكنيكهاي Visual هستند نيز از ديگر مزيتهاي اين روش محسوب مي گردد. اسنادي كه به اين روش توليد مي گردند معمولا از سرعت بارگذاري خوبي برخوردار هستند (به دليل عدم نياز به انجام پردازش در سمت Server). اما عليرغم تمامي ويژگيهاي ذكر شده اين روش مشكلاتي نيز دارد.

    نخست اينكه اين شيوه قادر به توليد صفحات ديناميك نيست. ديگر اينكه با تركيب محتوا (content) و قالب (Style) باعث بروز مشكل در ايجاد تغييرات در صفحات مي گردد. به بيان معادل، هزينه ايجاد و اعمال تغييرات در صفحات بالاست.

    به همراه اين تكنولوژي ابزارهاي ديگري براي برنامه سازي Client-Side نيز وجود دارد. برخي از اين ابزارها كه بيشتر مورد استفاده قرار مي گيرند عبارتند از Java Script، VBScript. البته به كمك تلفيق اين تكنولوژي با زبانهاي اسكريپت نويسي مذكور و نيز استفاده از مفاهيم CSS مي توان صفحاتي طراحي كرد كه محتويات ديناميك داشته باشند ليكن اين قدرت به Client محدود مي گردد و علاوه بر آن مشكل تركيب محتوا و قالب همچنان پابرجاست.

    2-تكنولوژي CGI (تكنولوژي مرتبط با طرف سرويس دهنده)

    يك برنامه CGI بوسيله سرويس دهنده وب در پاسخ به درخواست ايجاد شده توسط مرورگر وب، اجرا ميشود. سرويس دهنده وب به عنوان واسط ميان مرورگر و برنامه CGI، درخواست مرورگر را به برنامه و خروجي برنامه CGI را براي پردازش به مرورگر وب ارسال ميكند. براي مثال ممكن است برنامهاي نقطه نظرات كاربر را دريافت نموده و آن را به شكل يك پيام الكترونيكي براي مسئول سايت ارسال كند. تقريبا هرنوع زبان برنامه نويسي را ميتوان براي نوشتن يك برنامه CGI بكار برد. CGI واسط تعريف شده مابين سرويس دهنده وب و برنامه خارجي است كه مايليد آن را بنويسيد.

    حال سوال اين است كه يك برنامه CGI چه كاري نميتواند انجام دهد. اين برنامه نميتواند به طور مستقيم با كاربر ارتباط برقرار كند. همچنين نميتواند اطلاعات را از خط اعلان، منوها يا ساير بخشهاي تعاملي دريافت يا نمايش دهد. اين برنامه ها تصاوير گرافيكي را نيز نمايش نميدهند؛ اگر چه مي توانند داده هاي باينري ، كه در حقيقت تصوير هستند را توليد كنند، اما هيچ نوع واسط گرافيكي براي ارتباط با كاربر در اختيار برنامه ساز نمي گذارند.

    يك برنامه CGI براي عملكرد صحيح و مناسب نيازمند شرايط زير است:

    1- برنامه با وارد كردن نام آن در خط فرمان (Command Line) قابل اجرا باشد.

    2- برنامه بايد يك سرآيند (Header) مناسب و معتبر از نوع محتويات (Content)توليد كند. محتويات خروجي يك برنامه CGI ميتواند كد HTML، تصاوير GIF، فايلهاي متني، مستندات مايكروسافت Word و يا فايلهاي صوتي باشد. سرآيند نوع محتويات كه توسط برنامه CGI توليد ميشود، نوع محتويات بازگشتي را مشخص ميكند و مرورگر ميتواند عمليات مناسب را بر اساس آن انجام دهد.

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

    3- تكنولوژيهاي مرتبط با طرف سرويس دهنده: ASP,PHP,JSP

    اين سه نمونه از معروفترين تكنولوژي هايي است كه در انتشار صفحات وب ديناميك در طرف سرويس دهنده به كار گرفته مي شوند. جداي از اختلاف هاي موجود ميان آنها، هر سه امكاناتي را براي اجراي يك برنامه در Server و توليد خروجي HTML به صورت ديناميك فراهم مي كنند. در اين تكنولوژيها كد برنامه و كدهاي HTML با هم تركيب مي شوند.

    توليد ديناميك صفحات وب و برنامه نويسي به فرم Scripting از مزاياي اين تكنولوژيها به صورت عام مي باشند. اما در نهايت تركيب محتوا (Content)، قالب بندي (Format) و منطق برنامه(Logic) پيچيدگي بيشتري را نسبت به HTML سبب مي گردند

    الف) PHP

    PHP مخفف Hypertext Preprocessor يك زبان Scripting و Server-Side مي باشد. يك Script به كدي از برنامه ميگويند كه بصورت ابتدايي Compile نميشود و فقط در صورت فراخواني و يا درخواستي براي اجرا توسط مفسّر زبان مورد نظر ترجمه مي شود و به خروجي فرستاده مي شود. اين به اين معني ميباشد كه شما دقيقاً كد برنامه خود را در جاي مورد نياز به كار ميبريد و رابط اجرايي برنامه آنرا به مفسّر مورد نظر ارجاع ميدهد.

    بعد از نصب مفسّر PHP شما قادر خواهيد بود كه از كدهاي PHP به همراه كدهاي HTML خود در صفحات Web استفاده كنيد و همچنين ميتوانيد Script هاي صرفاً PHP خود را به عنوان ترمينالهاي تفسير كننده داده ها و رابطهاي ورودي و خروجي بر روي سرور خود قرار دهيد.
    شكل 5: چگونگي پردازش درخواستهاي وب با/بدون PHP-خطوط قرمز رنگ حالت استاتيك سايت و خطوط آبي رنگ پردازشهاي اضافي موردنياز در حالت ديناميك را نشان مي دهند
    فكر اوليهPHP در پاييز سال 1994 توسط Rasmus Lerdorf (rasmus@php.net)شكل گرفت .در ابتدا نگارشي از PHP در صفحه شخصي وي به كار گرفته شد ، تا اطلاعاتي از كساني كه رزومه وي را مي بينند ، نگاه داشته شود. اولين نگارش عمومي آن در اوايل سال 95 ارايه شد و با نام ” Personal Home Page Tools “ معرفي گرديد . كه البته شامل پارسري بسيار ساده بود كه ماكروهاي خاصي را مي شناخت و نيز برخي كاربردهاي مشترك در صفحات شخصـي مانند شمـارنده يا Guestbook وبرخـي ابزار هاي ديگر را شامل مي شد.

    پارســر در نيمه سال 95 بازنويســي شد و با نام “ PHP/FI نگارش 2 “ ارايه گرديد . FI نام بسـته نرم افزاري ديگري از Rasmus بود كه فرم هاي داده HTML را تفسير مي كرد . پس از آن بسياري از PHP در كــد هاي خود استفاده كردند . در ميانه سال 96 ميزان استــفاده كنندگان به حـــدود 15 هـزار سايت رسيد . اين ميــزان در نيمه سال 97 در حدود 50 هزار سايت مختلف بود. در هـمين زمان PHP از حالت يك پروژه شخصي درآمد و توســط تيمي توسـعه يافت . اين گروه نگارش جديدي از PHP را ارايه دادند و پارسر آن را بازنويسي نمودند. PHP3 به سرعت مورد استفاده قرار گرفـت . هم اكنـون نيز PHP4 آخرين نگارش اين محصول است كه در آن از موتور اسكريپت Zend براي بدست آوردن قابليت هاي بيشتر استفاده شده است .

    امروزه ، PHP3 و PHP4 بر روي بسياري از محصولات تجاري مانند “RedHat’s Stronghold web Server” ارايه مي گردد. هم اكنون برآورد مي شود بيش 5.100.000 سايت از PHPدر طراحي استفاده كرده اند.

    دلايل زيادي در محبوبيت و استفاده از اين زبان در حال حاضر وجو دارد برخي از اين دلايل عبارتند از:

    * سرعت: در مقايسه با تكنولوژي نظير ASP به دليل عدم استفاده PHP از Engine هاي مختلف و متفاوت كدهاي PHP از سرعت بالايي برخوردارند.
    * نزديك بودن Syntax به ++C/C و Java:از آنجاﺋيكه اكثر برنامه نويسان از ++C/C استفاده كرده اند و بخاطر محبوب بودن بي حد Java معمولا با Syntax هاي اين دو زبان اكثرا آشنا هستند . PHP هم اكثر Syntax هاي خود را شبيه به اين زبانها انتخاب كرده است
    * OpenSource بودن PHP
    * اجرا بر روي Platform هاي مختلف: به دليل آنكه توسط GNU C Compiler در همه Platform ها قابل Compile شدن است و از Engine هاي خاص هيچ سيستم عاملي براي اجراي كدها استفاده نمي كند قابليت اجرا بر روي تعداد زيادي از سيستم عامل ها را داراست كه اين يك مزيت براي توسعه دهندگان سيستم محسوب مي شود .

    ب) Servlet:

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

    امروزه نقطه تمركز بسياري از تلاشها جداسازي سه عنصر محتوا، قالب و منطق برنامه از يكديگر در طراحيهاي مبتني بر وب است. XML به عنوان يكي از اجزا بسياري از اين تكنولوژيها مطرح است.

    ج) XML

    يک markup language است که در آن مي توان از متون و Tagها براي ارايه يک سند استفاده نمود. برخلاف html که داراي Tagهاي ثابت و استانداردي است، درxml مي توان Tagهاي دلخواه را استفاده نمود. همچنين در اينجا هر Tag بايستي با يک Tag متناظر بسته شود. به همين خاطر xml يک فرم خوش ساخت دارد. مثالي از يک سند xml که براي يک کتاب ايجاد شده در زير آورده شده است:
    کد:
    HTML:
    <?xml version=”1.0”>
    <book id=”123”>
    <author name=”xyz”/>
    <title>XML publishing with xml</title>
    <publish-date><year>2002</year><month>7</month><day>15</day></publish-date>
    </book>
     
    
    امروزه استفاده از xml بسيار متداول و متنوع است. در هر حال بيشترين استفاده از آن در يکپارچه سازي سيستم ها و خصوصا در توليد سيستم هاي کاربردي مبتني بر وب است.


    منبع : aforum.majidonline.com_images_majidonline_logo.png
     

    موضوعات مشابه

    mehdi29دوتا6 و JIJILI از این پست تشکر کرده اند.
XenForo Add-ons by Brivium ™ © 2012-2013 Brivium LLC.