|
مقدمه ای بر برنامه نویسی تحت وب
اینترنت شبکه ای از شبکه های مرتبط به یکدیگر بوده که بر روی آن سرویس های متعددی بمنظور ارائه خدمات فعال می باشند. بدون شک سرویس وب یکی از مهمترین سرویس های موجود بر روی اینترنت است که بیشترین تاثیر را در عمومیت یافتن اینترنت در سطح جوامع بشری برعهده داشته است. وب در نگاه اول مانند یک سیستم اطلاعاتی توزیع شده است . در سیستم فوق اطلاعات ( با اشکال متفاوت ) بر اساس استانداردهای مربوطه و با یک ساختار مشخص قرار گرفته و با استفاده از ارتباطات تعریف شده بین اطلاعات می توان بسرعت و بسادگی از اطلاعات موجود استفاده کرد. ارائه دهندگان اطلاعات با پیروی از اصول موجود اطلاعات خود را در سیستم فوق قرار داده و جستجو کنندگان اطلاعات با استفاده از ابزارهائی خاص قادر به جستجو و دستیابی به این اطلاعات خواهند شد. وب در سال 1991 توسط " تیم - برنرز لی " ابداع گردید.
مراحل پردازش اطلاعات یک فرم HTML
-
اطلاعات موجود در وب در حریم های اطلاعاتی با نام " صفحات وب " ذخیره می گردند. اندازه ونوع محتویات این نوع صفحات کاملا" متغیر بوده و نمی بایست در این راستا یک صفحه وب را با یک صفحه کتاب مقایسه کرد گرچه شباهت های اندکی نیز بین آنها وجود داشته باشد.
-
محتویات یک صفحه وب می تواند : متن گرافیک صدا تصویر انیمیشن و ... باشد. گستردگی و تنوع نوع اطلاعاتی که می توان در صفحات وب قرار داد یکی از مهمترین ویژگی های قابل توجه وب از دیدگاه ارائه دهندگان اطلاعات از یک طرف و استفاده کنندگان از اطلاعات از طرف دیگر می باشد.
-
صفحات وب از لحاظ فیزیکی فایل هایی هستند که توسط نرم افزارهای مربوطه بوجود آمده و دارای انشعاب "htm" و یا "html"" می باشند. برای ایجاد این نوع صفحات می توان از تمام نرم افزارهائی که بنوعی قادر به ایجاد و ذخیره سازی یک فایل هستند استفاده کرد.( Notepad نمونه ای از این نوع نرم افزارها است ). امروزه نرم افزارهای کاملا" حرفه ای برای ایجاد و مدیریت صفحات وب توسط شرکت های نرم افزاری ایجاد شده است . FrontPage,Hotmetal,... نمونه هائی در این زمینه می باشند.
-
پس از ایجاد صفحات وب در صورت نیاز و استفاده عموم ( داخلی ، خارجی ) می بایست آنها را بر روی یک سایت ذخیره نمود. یک وب سایت مجموعه ای از صفحات وب را شامل می گردد.
-
ارائه دهندگان اطلاعات پس از آماده سازی صفحات وب و استقرار آنها بر روی یک وب سایت زمینه استفاده از اطلاعات فوق را برای استفاده کنندگان فراهم می نمایند. استفاده کنندگان با استفاده از نرم افزارهائی موسوم به " مرورگر" قادر به دستیابی به یک وب سایت و درخواست اطلاعات مورد نیاز خود می باشند.
-
* تمام صفحات وب دارای مجموعه دستورالعمل هائی هستند که نحوه نمایش اطلاعات مورد نظر را مشخص خواهد کرد. رایج ترین مجموعه دستورالعمل های نمایش در صفحات وب تگ های Html می باشند.
-
معماری عمومی وب:
برای تشریح بهتر برنامه های کاربردی تحت وب (Web based applications) مدرن و امروزی، معمولا آنها را به 4 لایه مستقل تقسیم می کنند.
معمولا لایه های میانی در یک لایه مجتمع شده و در نتیجه یک مدل ساده شده 3 لایه ای به دست می دهند.
-
لایه مشتری یا Client بخشی از این معماری است که توسط کاربر وب مشاهده می شود. بقیه لایه ها بر روی کامپیوترهایی قرار دارند که ممکن است صدها کیلومتر از مشتری فاصله داشته باشند. لایه مشتری در این مدل همان مرورگر وب است که بر روی کامپیوتر کاربر صفحات وب را نمایش می دهد. در این لایه علاوه بر امکان نمایش اطلاعات، امکان ورود و برخی پردازشهای اطلاعاتی نیز وجود دارد.معمولا دو گونه پیاده سازی از لایه مشتری وجود دارد. در روش اول از هوشمند بودن کامپیوتر کاربر و قابلیتهای پردازشی آن استفاده ای نمی شود. هنگامی که کاربر اطلاعات یک فرم را تکمیل می کند و یا درخواست صفحه خاصی را دارد، کلیه عملیاتهای پردازشی در لایه های میانی انجام می گیردو صفحه های جدیدی که حاوی نتایج این پردازشها هستند برای او ارسال می گردند. این روش را اصطلاحا Dump HTML Client می نامند.
-
اما در روش دوم از هوشمندی کامپیوتر کاربر به خوبی استفاده می شود. در این روش برخی پردازشهای خاص توسط کامپیوتر مشتری و مرورگر موجود بر روی آن صورت می گیرد. در این حالت کامپیوتر مشتری را Semi Intelligent Client می نامند. برای انجام این پردازشها معمولا از زبانهای اسکریپت نویسی نظیر vbscript و یا javascript استفاده می شود. توانایی مرورگها در اینجا اهمیت می یابد.
-
معماری سه لایه برنامه های کاربردی تحت وب :
-
لایه 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) تقسیم کرد. برای طراحی هر کدام نیز ابزارهای مختلفی وجود دارد.
-
مراحل پردازش درخواست سرویس گیرنده توسط سایت با ساختار ثابت : در سایتهای با ساختار ثابت همانگونه که قبلا نیز گفتیم، محتویات به صورت یک سری صفحات وب HTML طراحی و روی سایت قرار می گیرند.با هر درخواست برای یک صفحه مشخص، صفحه موردنظر برای سرویس گیرنده ارسال می شود ، اما در سایتهای با ساختار پویا با هر درخواست سرویس گیرنده بر روی سرویس دهنده پردازشی به منظور ساخت صفحه مورد نظر صورت می گیرد و نتیجه پردازش به صورت یک صفحه حاوی کدهای HTML برای سرویس گیرنده ارسال می شود
-
مراحل پردازش درخواست سرویس گیرنده توسط سایت با ساختار پوی : در نهایت آنچه که برای سرویس گیرنده ارسال می شود چیزی جز صفحه حاوی تگهای HTML نیست. در میان تکنولوژیهای مختلفی که وجود دارد مهمترین ها و پراستفاده ترین تکنولوژیها به شرح زیر هستند:
-
HTML : این تکنولوژی ساده ترین فرم انتشار اسناد در وب است.در این تکنولوژی صفحات یک وب سایت به صورت ایستا کدگذاری شده و سپس انتشار می یابند. این روشی است که در بسیاری از وب سایتهای شخصی که در ابتدای پیدایش وب ساخته شده اند بکار رفته است. در اینجا تولید کننده با دانستن html و یا با استفاده از ابزاری که چنین کدهایی را تولید می کنند، صفحات خود را می سازد. برای یک وب سایت ساده با تعداد محدودی از صفحات ایستا شاید این یک روش قابل قبول باشد. از مزایای این تکنولوژی می توان به سادگی و عدم نیاز به برنامه نویسی و آشنایی با زبان خاص کدنویسی اشاره کرد. علاوه بر این پشتیبانی گسترده این روش توسط نرم افزارهایی که قادر به تولید اینگونه صفحات از طریق تکنیکهای Visual هستند نیز از دیگر مزیتهای این روش محسوب می گردد. اسنادی که به این روش تولید می گردند معمولا از سرعت بارگذاری خوبی برخوردار هستند (به دلیل عدم نیاز به انجام پردازش در سمت Server). اما علیرغم تمامی ویژگیهای ذکر شده این روش مشکلاتی نیز دارد.نخست اینکه این شیوه قادر به تولید صفحات دینامیک نیست. دیگر اینکه با ترکیب محتوا (content) و قالب (Style) باعث بروز مشکل در ایجاد تغییرات در صفحات می گردد. به بیان معادل، هزینه ایجاد و اعمال تغییرات در صفحات بالاست.
به همراه این تکنولوژی ابزارهای دیگری برای برنامه سازی Client-Side نیز وجود دارد. برخی از این ابزارها که بیشتر مورد استفاده قرار می گیرند عبارتند از Java Script، VBScript. البته به کمک تلفیق این تکنولوژی با زبانهای اسکریپت نویسی مذکور و نیز استفاده از مفاهیم CSS می توان صفحاتی طراحی کرد که محتویات دینامیک داشته باشند لیکن این قدرت به Client محدود می گردد و علاوه بر آن مشکل ترکیب محتوا و قالب همچنان پابرجاست.
-
تکنولوژی CGI (تکنولوژی مرتبط با طرف سرویس دهنده) : یک برنامه CGI بوسیله سرویس دهنده وب در پاسخ به درخواست ایجاد شده توسط مرورگر وب، اجرا میشود. سرویس دهنده وب به عنوان واسط میان مرورگر و برنامه CGI، درخواست مرورگر را به برنامه و خروجی برنامه CGI را برای پردازش به مرورگر وب ارسال میکند. برای مثال ممکن است برنامهای نقطه نظرات کاربر را دریافت نموده و آن را به شکل یک پیام الکترونیکی برای مسئول سایت ارسال کند. تقریبا هرنوع زبان برنامه نویسی را میتوان برای نوشتن یک برنامه CGI بکار برد. CGI واسط تعریف شده مابین سرویس دهنده وب و برنامه خارجی است که مایلید آن را بنویسید. حال سوال این است که یک برنامه CGI چه کاری نمیتواند انجام دهد. این برنامه نمیتواند به طور مستقیم با کاربر ارتباط برقرار کند. همچنین نمیتواند اطلاعات را از خط اعلان، منوها یا سایر بخشهای تعاملی دریافت یا نمایش دهد. این برنامه ها تصاویر گرافیکی را نیز نمایش نمیدهند؛ اگر چه می توانند داده های باینری ، که در حقیقت تصویر هستند را تولید کنند، اما هیچ نوع واسط گرافیکی برای ارتباط با کاربر در اختیار برنامه ساز نمی گذارند.یک برنامه CGI برای عملکرد صحیح و مناسب نیازمند شرایط زیر است:
-
برنامه با وارد کردن نام آن در خط فرمان (Command Line) قابل اجرا باشد.
-
برنامه باید یک سرآیند (Header) مناسب و معتبر از نوع محتویات (Content)تولید کند. محتویات خروجی یک برنامه CGI میتواند کد HTML، تصاویر GIF، فایلهای متنی، مستندات مایکروسافت Word و یا فایلهای صوتی باشد. سرآیند نوع محتویات که توسط برنامه CGI تولید میشود، نوع محتویات بازگشتی را مشخص میکند و مرورگر میتواند عملیات مناسب را بر اساس آن انجام دهد.
-
مادامیکه یک برنامه توسط سرویس دهنده وب قابل اجرا باشد و این برنامه خروجی معتبری نیز تولید کند، کاربرد آن به عنوان یک برنامه CGI قابل قبول است.
|
-
تکنولوژیهای مرتبط با طرف سرویس دهنده: ASP,PHP,JSP
-
این سه نمونه از معروفترین تکنولوژی هایی است که در انتشار صفحات وب دینامیک در طرف سرویس دهنده به کار گرفته می شوند. جدای از اختلاف های موجود میان آنها، هر سه امکاناتی را برای اجرای یک برنامه در Server و تولید خروجی HTML به صورت دینامیک فراهم می کنند. در این تکنولوژیها کد برنامه و کدهای HTML با هم ترکیب می شوند. تولید دینامیک صفحات وب و برنامه نویسی به فرم Scripting از مزایای این تکنولوژیها به صورت عام می باشند. اما در نهایت ترکیب محتوا (Content)، قالب بندی (Format) و منطق برنامه(Logic) پیچیدگی بیشتری را نسبت به HTML سبب می گردند
|
PHP
مخفف Hypertext Preprocessor یک زبان Scripting و Server-Side می باشد. یک Script به کدی از برنامه میگویند که بصورت ابتدایی Compile نمیشود و فقط در صورت فراخوانی و یا درخواستی برای اجرا توسط مفسّر زبان مورد نظر ترجمه می شود و به خروجی فرستاده می شود. این به این معنی میباشد که شما دقیقاً کد برنامه خود را در جای مورد نیاز به کار میبرید و رابط اجرایی برنامه آنرا به مفسّر مورد نظر ارجاع میدهد.
بعد از نصب مفسّر PHP شما قادر خواهید بود که از کدهای PHP به همراه کدهای HTML خود در صفحات Web استفاده کنید و همچنین میتوانید Script های صرفاً 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 بسیار متداول و متنوع است. در هر حال بیشترین استفاده از آن در یکپارچه سازی سیستم ها و خصوصا در تولید سیستم های کاربردی مبتنی بر وب است.
|
|
| |
|