تارا فایل

تحقیق نحوه کار برنامه های کاربردی وب


نحوه کار برنامه های کاربردی وب
برنامه های کاربردی وب دسترسی پویای وب پیج های مبتنی برHTML از طریق یک مرورگر وب را ایجاد می کند. از آنجا که برنامه های کاربردیWeb Dbject شیء گرا بوده و به زبان جاوا نوشته می شود، برنامه کاربردی شماWeb page هایی را با ایجاد نمونه های شی ها به نام مولفه های وب به وجود می آورد.
مولفه وب ترکیبی از زیرمجموعه هایWocomponent و قالبHTML جاوا است. مولفه های وب همه مولفه ها و عناصر استانداردHTML شامل انیمیشنFlash، فیلم های Quichtime ، برنامه هایJava script و اپلت های جاوا را در برمی گیرد. مولفه های وب همچنین از کاسکاد ورقه های تعاریف(CSS) پشتیبانی می کند.
با افزودن عناصر خاصWebObject با همت هایHTML – به نام عناصر پویا- به مولفه های وب خود، محتوای پویا را به وب پیج های خود اضافه کنید. برخی عناصر پویا فاقد همت های HTML بوده و صرفاً در کنترل ایجاد محتوا به کار می رود. به عنوان مثال، محتوایی که شرطی یا تکراری است. هنگام پاسخ دهی به درخواست های مرورگر کلانیت، محتواهای پویا به HTMLایستا ترجمه و تبدیل می شود.
می توانید در ساخت مولفه های وب یا ازWebObject Builder یاDirect to Web استفاده کنید. WebObject Builderیک ابزار گرافیکی در خلق مولفه های وب بوده و عناصر پویا را به متغیرها و متدهای برنامه کاربردی شما محدود می کند. Direct to Web یک ابزار ساخت سریع نمونه بوده که برنامه کاربردی در حال کار وب را از مدل E0 ارائه شده خلق می کند. برای تغییر محتوای مولفه های Direct to WebازWeb Assistant استفاده نمایید. همچنین می توانید صفحات را فریز کنید- مولفه های وب را خلق کرده و به پروژه خود اضافه کنید- و آنها را با استفاده ازWeb Object Builder اصلاح نمایید.
باید قبل از معمول سازی برنامه کاربردی وب خود، درک بنیادینی از معماری یک برنامه کاربردی داشته باشید. این قسمت معماری برنامه های کاربردی وب را تشریح کرده و چگونگی کار عناصر پویا را در زمینه حلقه درخواست- پاسخ برنامه کاربردی را توضیح می دهد. هنگام پردازش یک درخواست و ایجاد صفحه پاسخ، شرح خلاصه ای از ترتیب متدها استنتاج می شود. این قسمت همچنین چگونگی کاربک تراک (پیمایش معکوس)Web Object ها را توضیح می دهد.
این سند چگونگی استفاده از ابزارهای مختلف Web Object را توضیح نمی دهد. در مورد مراحل استنتاجی در خلق قالب ها و ساخت عناصر پویا، راهنمای کاربرWeb Object Boilder را مطالعه کنید. در مورد چگونگی استفاده ازWeb Objects Direct to web Guid ,Direct to web (هدایت شیء های وب به راهنمای وب) را مطالعه نمایید.

معماری برنامه کاربردی
نه تنها برنامه وب شما محتوای پویایی ایجاد می کند بلکه می توانید قالب ها را به کاربر ارائه داده که محتوای مولف را برای آنها تایید می کند. داده های ورودی را از کاربرانی بدست می آورید که از قالب هایHTML، دکمه ها و دیگر عناصر پویا استفاده می نمایند. مرتبط سازی عناصر قالب به متغیرها و متدهای مولفه وب شما شبیه محدود کردن دیگر عناصر پویاست که صرفاً محتوا را نمایش می دهد.
با قرار دادن عناصر پویا در یک عنصر استاندارد قالب مولفه وب خود، قالب ها را خلق کنید. مولفه وبHTML را ایجاد می کند که مرورگر های وب می توانند آن را تغییر کرده و نمایش دهد. این فرآیند از ترجمه دیتای ثبتی کاربر یا انتخاب ها به متغیرهایی در برنامه شما تشکیل می شود. اگر مولفه های وب را برنامه نویسی می کنید، این برنامه نویسی به درک چگونگی پردازش ورودی کاربر توسط برنامه های وب کمک می کند.
برنامه هایWeb Object مبتنی بر رویداد(event driven) هستند اما به جای پاسخ دهی به رویدادهای ماوس و کیبورد به درخواست هایHTML (پروتکل انتقال ها پیرتکست) پاسخ می دهند. برنامه درخواست عملHTML را دریافت می کند، به آن پاسخ می دهد و سپس منتظر درخواست بعدی می شود. پاسخ دهی برنامه به درخواست ها ادامه می یابد تا اینکه درخواست ها تمام شود. حلقه اصلی به کار گیرنده این درخواست ها حلقه درخواست- پاسخ،WebObject محتوای عناصر پویا را پر می کنند. اطلاعات انتشاری برنامه های شما در دیتابیس یا دیگر وسایل ذخیره سازی دیتا مقیم شده یا می توان آن را هنگام دسترسی به صفحه ایجاد کرد. صفحات هم بسیار محاوره ای و فعل و انفعالی هستند- شما می توانید کاملاً روش را مشخص کنید که کاربر از طریق آنها هدایت شده و دیتاهایی که آنها مشاهده و اصلاح می کنند.
شکل یک وب سایت مبتنی برWeb Object را نمایش می دهد. مجدداً درخواست (در قالبURL) از مرورگر وب به وجود می آید. مرور وب کشف می کند که درخواست باید توسط برنامه کاربردی Web Object به کار رفته و درخواست را به آداپتورHTTP بفرستد. آداپتور درخواست وارده را به شکلی پکیج می کند که برنامه Web Object بتواند آن را درک کرده و به برنامه کاربردی فوروارد کند. براساس مولفه های وب تعریف شما و دیتای مربوطه از انبار دیتا، برنامه وب پیجی را ایجاد می کند که از طریق آداپتور به سرور وب منتقل می شود. سرور وب صفحه را به مرورگر وب می فرستد که آن را ارائه می دهد.
به این نوع از برنامه کاربردی Web ObjectبرنامهWeb گفته می شود زیرا نتیجه آن ایجاد یک سری وب پیج هایHTML پویا می باشد.

حلقه درخواست- پاسخ
هر عمل اتخاذ شده از سوی کاربر از طریق سرور وب و آداپتور Web Objectبا برنامه کاربردی شما ارتباط برقرار می کند. همه جزئیات مربوط به عمل کاربر- محتوای فیلدهای تکست، وضعیت چک باکس ها و دکمه های رادیویی و انتخاب در منوهای pap-up همین طور اطلاعاتی پیرامونsession و دکمه یا لینک فعال شده در درخواست HTTP رمزگذاری می شود.
درخواست با عمل آداپتور Web Objectو رفتار پیش فرض برنامه رمزگشایی می شود. این فرآیند رمزگشایی، که در ایجاد صفحه پاسخ به حداکثر خود رسیده تا به مرورگر وب بازگشت داده شود- حلقه درخواست- پاسخ را می سازد. شکل2 ترتیب پیام های استنتاجی هنگام پردازش درخواست را نشان می دهد.
Web Objects دو مدل پردازش درخواست دارد، عمل هدایت و عمل مولفه.
– مدل عمل مولفه به شما اجازه می دهد وضعیت را در برنامه حفظ کنید؛ از این رو، به شیء های session نیاز داشته و از آن استفاده می کند. به طور پیش فرض، برنامه های وب از این مدل استفاده می کنند.
– مدل عمل مستقیم توسط برنامه هایی به کار می روند که به مدیریت وضعیت- به عنوان مثال، موتورهای جستجو، کاتالوگ های تولید، کتابخانه های پرونده و انتشار پویا- نیاز ندارد. برنامه های استفاده کننده این مدل به طور پیش فرض فاقد شیء هایsession هستند.
هنگام توسعه یک برنامه به یک مدل پردازش درخواست محدود نمی شوید برنامه ها مناسب ترین مدل را در پیاده سازی مشخصه های خاص به کار می گیرد. عمل های مولفه به طور کلی در برنامه های وب دارای مولفه های به هم پیوسته سودمند است. به هر حال، توانایی کنترل زیاد جریان برنامه را به کاربر ارائه نمی دهد. به عنوان مثال، کاربر نمی تواند مستقیماً متد تعریف شده در فایل سرس جاوای یک مولفه وب را اجرا کند. از طرف دیگر، عمل های هدایت (Directactim) در ارائه چنین دسترسی به کاربران بهترین است. به عنوان مثال، با به کارگیریURL مناسب کاربران می توانند شیوه های خاص یک برنامه را اجرا کنند.
URL های عمل مولفه
هنگامی که یک برنامه وب را آرایش داده و از طریق مرورگر وب به آن دسترسی دارید، URL نمایش مرورگر از فرمت خاصی برخوردار است که زمینه،session صفحه برنامه وب و حتی عنصر وب را مشخص می کند.
URL همه اطلاعات ضروری برنامه کاربردی را در بر گرفته تا وضعیت مولفه های وب و session ایجاد شده برای کلانیت مشخص را بازستازی کند. لیست1 مثالی ازURL عمل مولفه را نشان می دهد.
* شکل3- ص 13- ساختار یکURL عمل مولفه
پیام های حلقه درخواست- پاسخ
جدول 1 فازهای فرآیند درخواست- پاسخ را فهرست می کند. جدول2 ترتیبی را نشان می دهد که متدهای موجود در آن استنتاج می شود. فرآیند به طور تفضیلی در "پردازش درخواست" ص14 و "ایجاد پاسخ" ص16 توضیح داده می شود. شیء های اولیه دریافت کننده پیام ها از حلقه درخواست- پاسخ عبارتند از شی مولفه وب، session و برنامه شیء برنامه (application object) مثال برنامه ای است که زیر مجموعه WOApplication می باشد. یکsession object مثالی ازsession بوده که session زیر مجموعه ای از WOApplicationمی باشد. هنگامی مثال Applicationخلق می شود که برنامه شما آغاز می شود و مثالsession برای هر کاربر اولیه شکل می گیرد. توجه کنید که ممکن استsession ها تایم اوت شوند. می توانید زمان تایم اوت را هنگام آرایش یک برنامه پیکربندی کنید.
اگر یکی از قالب های برنامه های وب درXcode را هنگام ایجاد پروژه ای انتخاب کنید، کلاس هایApplication, session به طور اتوماتیک به پروژه شما اضافه می شود. در مورد چگونگی ایجاد پروژهWebobject Xcode قسمت "ایجاد پروژه ها" ص19 را بخوانید.
* جدول یک1- فاز پردازش درخواست- پاسخ
فاز
متد
شرح
بیدار
ص13
شیء های مولفه،session و برنامه بیدار می شوند.
منطق معمولی قالب بندی را می توان به این فاز اضافه کرد.
سنکرون
ص13
عناصرWebobject به دیتای قالب خوانده شده در متغیرهای مثال محدود می شود.
عمل
ص13
عملی که کاربر با لینک یا دکمه تایید شروع کرده انجام می شود. عمل می تواند صفحه جدیدی خلق کند.
پاسخ
ص13
صفحه پاسخ ایجاد می شود. محتوای عناصر قالب به مقادیر ذخیره در متغیرهای مثال تنظیم شده که عناصرWebobject به آن محدود می شود. مقدار کلیدی کدگذار شیوه های دست یابی استنتاج می شود.
خواب
ص14
شیء های مولفه،Application, session به خواب می روند. منطق بی اثر سازی معمولی را می توان به این فاز اضافه کرد.
* جدول2- تایم لاین پردازش درخواست- پاسخ ص14
پردازش درخواست
عمل پردازش درخواست در سه مرحله روی می دهد: بیداری، سنکرون، و عمل
– Awake (بیداری)- هنگامی این مرحله اجرا می شود کهWeb object پیام های awakwe را به چندین شیء می فرستد.
ضروری است که از منابع محدود در سیستم چند کاربری تا حد ممکن به طور سودمند استفاده می شود. برنامه ها صرفاً زمانی فعال هستند که کاری انجام دهند. یک سرور مجزا می تواند چندین برنامه یا نمونه های زیادی از همان برنامه را اجرا کند. نمونه های برنامه صرفاً حین پردازش درخواست ها فعال هستند برای کسب اطلاعات بیشتر قسمت "ایجاد پاسخ" را ببینید.
ابتدا شیوهawake شیء برنامه، سپس شیوهawake شیء session و متدawake مولفه وب برای درخواست های مبتنی بر عمل مولفه استنتاج می شود. شما می توانید متد را در هر یک از کلاس های متناظر متعارف (Custora) کنید تا بر منطقی بیافزایید که ضروری است قبل از پردازش درخواست انجام شود ولو آنکه پیاده سازی های پیش فرض این متدهایawake کاری انجام ندهند، باید پیاده سازی کلاس بالا را قبل از اجرای منطق معمول استنتاج کنید بدینگونه که:
سنکرون- در طی این مرحله متد take Values From Request استنتاج می شود که باعث شده مقادیر ثبتی در عناصر قالب توسط کاربر در متغیرهای نمونه متناظر کپی شود. در صورتی از این مرحله پرسش می شود که مولفه فاقد عناصر قالب باشد یا مقادیر عناصر قالب تغییر نکرده باشد.
Web Object متد take Values From Requestشیء برنامه را استنتاج می کند. سپس برنامه شیوه متناظر شیءsession را استنتاج می کند که در عوض، متد مولفه وب (برای درخواست های مبتنی بر عمل مولفه) را استنتاج می نماید. مولفه هر یک از متد take Values From Request عنصر پویا را استنتاج می کند که باعث می شود عناصر قالب مقادیر درخواست را در اتصالات مناسب مولفه کپی کند.web objects از کد گذاری مقدار کلید- پیاده سازی شده توسط رابطNSKeuValue Coding در(com-webobjects.foundation – استفاده کرده تا چگونگی تنظیم مقدار اتصال را مشخص کند.
– عمل- طی این مرحله، عمل انتخاب کاربر به وسیله استنتاج متدinvoke Action اجرا می شود.
Webobject مانند شیوه take Values From Request شیوه invoke Action برنامه را استنتاج می کند. سپس، برنامه متدsession را استنتاج کرده که در عوض متد مولفه مبتنی بر وب (برای درخواست های مبتنی بر عمل مولفه) را استنتاج می کند. سپس مولفه invoke Action را به هر یک از عناصر پویای خود می فرستد.
هنگامی که متد invoke Action عنصر پویای راه انداز درخواست- به عنوان مثال، یک دکمه تایید- استنتاج می شود، عنصر پویا پیام محدود را به صفتaction خود می فرستد.
ایجاد پاسخ
بعد از اینکه مقادیر قالب جمع آوری شده و متد عمل استنتاج می شود، برنامه صفحه پاسخ را خلق می کند. این مولفه وب برگشت داده شده توسط متدaction است. فرآیند ایجاد پاسخ از دو فاز تشکیل می شود: پاسخ و خواب.
– پاسخ- صفحه پاسخ در طی این فاز به وجود می آید. همه متدهای appendtoReponse عنصر پویا استنتاج می شود بنابراین، محتوای خود را به وب پیج رندر و ارائه شده می افزاید.
Web object متد appendtoReponse برنامه را استنتاج می کند. سپس، برنامه متد session را استنتاج می کند که در عوض متد مولفه وب را استنتاج می کند. مولفه از طریق HTML خلق کننده محتوای صفحه خود پیش می رود. هنگامی که مولفه عنصر WEBOBJECT را می یابد، متد appendtoReponse خود را استنتاج می کند بنابراین مقادیر محدودیت های خود را به دست آورده و محتوای حاصل را به صفحه می افزاید. فرآیند به طور برگشتی ادامه می یابد تا اینکه کل صفحه پاسخ ایجاد شود.
مجدداً هنگامیWebobject از کدگذاری مقدار کلید استفاده می کند که ضروری بوده متغیر تنظیم یا قابل دسترس شود. هنگامی که مقدار کلیدی به نامkey درخواست شود، کدگذاری مقدار کلید ابتدا شیوهaccessor را جستجو می کند. اگر شیوه ای پیدا نشود، به خود متغیر نمونه دسترسی پیدا می کند. ترتیبی که کدگذاری مقادیر کلیدی سعی می کند مقدارkey را به دست آورد.
– sleep (خواب)- هنگامی که فرآیند پاسخ کامل شود، متدهایsleep شیء های برنامه session و مولفه وب استنتاج می شود (ترتیبی که متدsleep شیء در آن فراخوانی می شود متضاد ترتیبی است که متدهایawake در آن در فاز بیداری استنتاج می شود) هنگام لغو متدsleep باید پیاده سازی سوپر کلاس را در انتهای متد قرار دهید. که در لیست2 نشان داده می شود. بعد از آنکه همه شیء های استنتاجی در فرآیند درخواست پاسخ به خواب رفتند، صفحه جدید به آداپتورwebobject ارسال می شود.
بک تراک کش
webobject از استفاده دکمهBack مرورگر وب با نگهداری کش صفحات اخیراً مشاهده شده در سرور پشتیبانی می کند. این فرایندback tracking نامیده می شود. یک کش به طور پیش فرض پیکربندی می شود تا 30 صفحه در هر جلسه در برداشته باشد اما می توان آن را برای تامین نیازهای شما بهبود بخشید. برای تغییر سایز پیش فرض کش، کد را به سازنده کلاس Application اضافه کنید. به عنوان مثال، برای تغییر اندازه کش صفحه به45 صفحه، این سطر کد را اضافه کنید:
هنگامی که صفحه پاسخ ایجاد می شود، صفحه پاسخ و اطلاعات وضعیت آن به کش اضافه می شود. به این طریق، هنگامی که کاربر دکمهBack مرورگر را کلیک می کند، webobject می تواند مولفه صحیح وب و وضعیت آن را نگهدارد.
برای کار صحیح بک تراک با دیتای پویا، کش خود مرورگر وب باید غیرفعال شود به طوری که همه درخواست های صفحه به سرور وب و بنابراین، برنامه شما می شود. شما می تواندید این را با افزودن این کد به متد سازنده کلاسApplication انجام دهید:
هنگامی که کش پر می شود، قدیمی ترین صفحه در آنdircard شده تا فضایی برای خود ذخیره سازی یک صفحه جدید ایجاد کند. هنگامی که بک تراک های کاربر از قدیمی ترین صفحه در کش می گذرد، webobject با صفحه خاص به کاربر هشدار می دهد.
برای کسب اطلاعات بیشتر پیرامون بک تراک، قسمت "مدیریت کش و بک تراک" را مطالعه کنید.

ایجاد پروژه ها
یک پروژه webobjects همه فایل های مورد نیاز ساخت و اجرای کاربردی شما را در برمی گیرد. در ایجاد پروژه جدید webobjectsاز Xcode استفاده کنید. درXcode قالب مناسب پروژه webobjectsرا انتخاب نمایید و دستیاری از طریق فرآیند ایجاد پروژه شما را راهنمایی می کند. انواع فایل های اضافه شده به پروژه Xcode و سازمان دهی شما به الگو و قالب انتخابی شما بستگی دارد. اگر چه ممکن است چار چوب ها، مقصدها و پیکربندی های ساخت اندکی متفاوت باشند ولی سازمان دهی برنامه های وب- برنامه هایی که محتوای پویای HTML ایجاد می کند- خیلی به هم شبیه هستند.
این مقاله چگونگی استفاده Xcode در خلق برنامه های وب را توضیح می دهد. این مقاله قالب های مختلفی را تشریح می کند، دستور العمل مرحله به مرحله ایجاد پروژه شما را ارائه می دهد، سازماندهی فایل های موجود در پروژه را توضیح می دهد، مقاصد خاص برنامه وب را شرح می دهد، و ترفندهایی برای ساخت و نصب برنامه شما را در برمی گیرد.
انتخاب یک قالب
هنگامی که پروژه ای به زبان Xcode به وجود می آید، انتخاب قالب و الگوی مناسب webobjects در assistant ضروری است. قالب های خلق کننده یک برنامه کاربردی وب عبارتند از برنامهDirect to web، برنامهDisplay Group ، و برنامه webobject. همچنین می توانید از چارچوب webobjectsاستفاده کنید.
– اگر یک مدلEO دارید که قبلاً یا باEOModeler یا Xcodeایجاد شده و می خواهید یک نمونه سریعی بسازید، برنامهDirect to web را انتخاب کنید. این انتخاب خوبی برای برنامه نویسان جدید در webobjects به شمار می آید.
– اگر مدلEO دارید یا می خواهید یکی ایجاد کنید- یعنی می خواهید وب پیج های خود را با محتوایی از دیتابیسback-end (انتهای برگشتی) مشهور کنید- و می خواهید مولفه های متعارف وب را بسازید، برنامهDisplay Group را انتخاب کنید.
– اگر نمی خواهید از شیء های سازمانی استفاده کنید، برنامه webobjectsرا انتخاب کنید.
– اگر می خواهید چارچوبی ایجاد کنید، webobjects fromework را انتخاب کنید. به طور نمونه، این قالب را برای ایجاد چارچوب دارای منطق کاری خود- مدلEO و شیء های سازمانی خود- انتخاب کنید که می توان آن را دوباره در انواع دیگر برنامه ها نظیرwebservise به کار برد. همچنین می توانید چارچوبی از مولفه های قابل استفاده مجدد وب را ایجاد کنید.

ایجاد یک پروژه برنامه وب
هنگامی که پروژه ای را از قالبی خلق می کنید،Xcode Assistant با نمایش تعدادی از کادرها شما را از طریق فرآیند راهنمایی می کند. اولین کادرهای معدود برای همه گونه های برنامه های وب یکسان است. کادرهای بعدی می تواند بر اساس قالب انتخابی شما تغییر کند. تنظیمات پیش فرض Assistant در اکثریت برنامه ها کار می کند. به طور نمونه، صرفاً لازم است نام پروژه را وارد کرده و دکمهNext را کلیک کنید و در کادر نهایی، رویFinish کلیک کنید. این مراحل عمومی را برای خلق یک برنامه وب دنبال کنید. برای کسب جزئیاتی پیرامون استفاده الگویDirect to web Guide webobjects, Direct to web Application را مطالعه کنید.
1- Xcode واقع در/Developer/Application را شروع کنید.
2- منویFile> new peroject را انتخاب کنید.
پنلAssistant در حال نمایش کتبی از الگوها و قالب ها آشکار می شود.
3- یکی از قالب ها و الگوهایwebobjects را انتخاب کرده و Next را کلیک کنید.
اگر مطمئن نیستید از چه قالبی استفاده می کنید، قسمت"انتخاب قالب" را مطالعه کنید.
4- نظیر شکل2 نام پروژه و موقعیت را وارد کرده وNext را کلیک کنید. اگر الگوی webobject Famenework را کلیک کرده و به مراحل مانده پرش کنید.
5- اگر می خواهید برنامه وب خود را در کانتینر سرولت J2EE آرایش دهید، گزینهin "Deploy a servlet container" در کادر مجتمع سازیJ2EE را انتخاب کرده و سپس Next را کلیک کنید.
6- اگر برنامه شما یک سرویس وب است، گزینه "Add web service support" را در کادر web service support انتخاب کنید. اگر برنامه شما از سرویس وب استفاده می کند، بر روی "Add web service client support" را کلیک کنید. سپس نظیر شکل3 Next را کلیک کنید.
استفاده از سرویس های وب اختیاری است.
7- اگر از آداپتور JDBC استفاده می کنید، در کادرChoose EOAdaptor گزینهJava JDBCAdaptor. Framework را انتخاب کنید. اگر از آداپتورJNDI استفاده می کنید، Java JNDIAdaptor. Framework را انتخاب کنید.
آداپتور پیش فرض دیتابیسJDBC است زیرا اکثریت دیتابیس های مدرن ازJDBC پشتیبانی می کنند. اگر مطمئن نیستید از چه دیتابیسی استفاده می کنید، فقطNext را کلیک کنید.
8- اگر نیاز است چارچوب های اضافی را به پروژه خود- به عنوان مثال، چارچوب های دیتابیس دسته سوم- اضافه کنید، نظیر شکل4 در کادرChoose Franework رویAdd کلیک نمایید. در غیر این صورت، برای ادامهNext را کلیک کنید.
Assistant چار چوب های مناسب webobject و جاوا را به پروژه شما اضافه می کند که به الگوی انتخابی شما بستگی دارد. اگر افزودن چارچوب های بیشتری ضروری نیست، صرفاً Next را کلیک کنید.
9- سپس با کلیک Add در کادرEOModels، یک مدلEO را اضافه کنید.
اگر مدلEO موجودی دارید که یا با استفاده ازXcode یاEomodeler خلق کردید، حالا می توانید آن را به پروژه خود اضافه کنید. اگر الگوی Direct to web Application یا Display Group Application انتخاب کردید، سپس انتخاب مدلEO الزامی است.
10- اگر الگوی web Application را انتخاب کردید، Finish را کلیک کرده و به مراحل بعدی بروید.
11- اگر الگوی Direct to web Application را انتخاب کردید، سپس کادرهای معدود خاصی در Direct to web پدیدار می شود. برای چگونگی خلق یک برنامه
webobjects Direct to web Guide, Direct to web را مطالعه کنید.
12- اگر الگوی Direct to web Application را انتخاب کردید، بعداً کادرهای معدود خاص پیکربندی یک گروه نمایش پدیدا می شود.
13- مدخل اصلی در کادر Choose the main EOEntity را انتخاب کنید. مدخلی را انتخاب کنید که شیء های ریشه را نشان می دهد وNext را کلیک کنید.
14- در کادر Choose a layout طرح اولیه ای برای صفحه انتخاب کنید.
15- ویژگی هایی برای نمایش صفحه مشابه پیکربندی برنامهDirect to web را در کادرChoose Attributes to display را انتخاب کنید. سپس Finish را کلیک کنید.
هنگامی که دکمهFinish را کلیک کردید، پنلAsisstant بسته شده و پنجره پروژه شامل همه فایل های برنامه شما باز می شود. در مورد تشریح فایل های پروژه شما، قسمت"فایل ها و گروه های پروژه" را مطالعه کنید.
فایل ها و گروه های پروژه
فایل ها و گروه های نمایش درXcode متفاوت هستند که به نوع الگویwebobject انتخابی شما هنگام خلق پروژه Xcode بستگی دارد. این قسمت برخی از گروه هایی را تشریح می کند که هنگام خلق یک برنامه وب آشکار می شود.
کلاس ها
همانطور که در شکل5 نشان داده می شود گروهClases از کلاس های جاوایی تشکیل می گردد که با مولفه های وب تناظری ندارند. به طور نمونه، این گروهDirect Action. Java, Session. Java Application. Java را در برمی گیرد. کلاس های متناظر با مولفه های وب در گروه web Components قرار دارند. به عنوان مثال، Main. Java در web Components / main قرار دارد.
کلاس های پیش فرض در پروژهwebobject عبارتند از:
– Application. Java زیر مجموعه ای از WoApplication است. هنگامی شیء برنامه به طور اتوماتیک خلق می شود که برنامه شما آغاز شده و با نمونه برنامه متناظر است.
– Session. Java زیر مجموعه ای ازWo Session است. هنگامی شیء Session به طور اتوماتیک خلق می شود که کاربر ارتباطی با برنامه وب شما برقرار کند.
– Direct Action. Java زیر مجموعه ای ازWo Direct Action است.
مولفه های وب
همان طور که در شکل6 نشان داده می شود، گروه مولفه های وب همه فایل هایی را در بر می گیرد که به مولفه های وب متعلق است. یک مولفه وب، یک صفحه یا بخشی از یک صفحه را در برنامه شما نشان می دهد. یک برنامه می تواند از یک یا چندین مولفه وب برخوردار باشد.
به عنوان مثال، هر برنامهwebobject حداقل مولفه ای به نامMain دارد که در گروه Webxomponents وجود دارد. یک فولدر مولفه وب از چند فایلی تشکیل می شود که رفتار و ظاهر مولفه را مشخص می کند. هر فایلی از پیشوند مشابه اما با پسوندهای مختلفی برخوردار است. اینها فایل های موجود در یک فولدر مولفه وب هستند:
– مولفه وبی با پسوند.wo که طرح اولیه عناصرHTML و اتصال ها را در عناصر پویا ذخیره می کند.
– فایل کلاسی با پسوند.java که رفتار مولفه را پیاده سازی می کند. هر یک از مولفه ها زیر مجموعه ای ازWoxomponent است. به طور نمونه، کلاس شما متغیرها و متدهای محدود به عناصر پویا را پیاده سازی می کند.
– یک فایلAPI با پسوند.api که کلیدهای تعریف شده توسط مولفه ای که مولفه های دیگر به آن متصل شده و فرمان هایی برای اتصال کلیدها را دربرمی گیرد. webobjects Builder از این فایل ها استفاده کرده تا چک کند که آیا مولفه قابل استفاده مجدد به درستی به کار رفته است یا خیر.
به طور نمونه مولفه ای را با استفاده از webobjects Builder ویرایش کنید- فقط روی فولدری با پسوند.wo دوبله کلیک کنید تا آن را در webobjects Builder ویرایش نمایید. به هر حال، اگر فرمت را درک کنید، گاهی می توانید این فایل ها را مستقیماً ویرایش کنید. به عنوان مثال، این ها فایل های فولدرMain.wo هستند:
-main. Html الگویHTML برای مولفه است. این فایل درست مثل هر وب پیجی از تگ هایHTML برخوردار است. به علاوه می تواند تگ های عناصر پویا را دربرداشته باشد.
– main.wod فایل اعلام هایی است که ارتباطات بین عناصر پویا و متغیرها یا متدهای را در فایل جاوا شما مشخص می کند.
– mian.woo برای ذخیره سازی اطلاعات در مورد گروه های نمایشی- مثلاً، اگر پروژه شما به دیتابیسی دسترسی داشته باشد- و رمز گذاری برای الگوهای HTML به کار می رود. به ندرت این فایل را مستقیم ویرایش کنید.
منابع(Resources)
گروه Resources فایل هایی را در بر می گیرد که برنامه شما در زمان اجرا به آن نیاز دارد اما وجود آن در ریشه پرونده سرور وب ضروری نیست و از این رو، کاربران به آن دسترسی نخواهند داشت. فایل های Resources می تواند فایل های متفرقه پیکربندی، فایل های مدلEO و آیکون ها را در بر داشته باشد.
منابع سرور وب
گروهweb server Resources فایل هایی نظیر تصاویر و صوت را در بر می گیرد که باید تحت ریشهdocument سرور وب در زمان اجرا باشد. هنگام توسعه برنامه، این فایل ها را در دایرکتوری پروژه خود قرار داده و آنها را به گروهweb server Resources پروژه اضافه کنید. هنگامی که پروژه خود را می سازید، Xcode فایل های این گروه را در فولدر web server Resources پوشه برنامه خود کپی می کند.
چارچوب ها
گروه Frame works چارچوب های انتخابی شما درAssistant حین ایجاد پروژه webobject و همینطور چارچوب هایی را در بر می گیردxcode به طور اتوماتیک به پروژه شما اضافه می کند.
چارچوب مجموعه ای از کلاس ها و منابعی است که برنامه های چندگانه به کار می برند. با ذخیره سازی آیتم هایی چون مولفه ها و تصاویر در چارچوب ها، می توانید آنها را بدون خلق کپی های چندگانه در پروژه های چندگانه مجدداً استفاده کنید.
هر پروژه webobjects به طور پیش فرض از چندین چارچوب برخوردار است که به الگوی انتخابی شما درXcode بستگی دارد. یک برنامه webobjects که از Enterprise (داده های سازمانی) استفاده می کند این عناصر را در برمی گیرد:
– Java EOControl- framework با لایه کنترل در Enterprise objects مطابقت دارد که زیرساختاری برای ایجاد و مدیریت شیء های سازمانی را فراهم می آورد.
– Java EOAcess- framework با لایه Acess (دسترسی) در Enterprise objects مطابقت دارد که مکانیزم های دسترسی دیتا را برای تکنولوژی Enterprise objects فراهم می کند.
برای کسب اطلاعات بیشتر در مورد داده های سازمانی، webobjects Enterprise objects, objects programming guide (راهنمای برنامه نویسی داده های سازمانی webobjects) را مطالعه نمایید.
اگر آداپتورJBDC را برای دسترسی به دیتابیس خود انتخاب کردید، پروژه شما از این چارچوب تشکیل می شود:
– Java JDBCAdaptor. Frameworkپیاده سازی یک آداپتور داده های سازمانی برای منابع دیتایJDBC را ارائه می کند.
یک برنامه وب این چارچوب ها را در بر می گیرد:
– Java foundation. Framework مجموعه ای از کلاس های کامل و نیرومند هسته را فراهم می کند که شامل کلاس های برنامه سودمند، جمع آوری، کدگذاری مقدار کلید، زمان و تاریخ، و ثبت وقایع اشکال زدایی می شود.
– Java webobject. Framework کلاس های سرور هسته برنامه وب، مدیریت session، مولفه وب و حلقه درخواست- پاسخ را در بر می گیرد.
– Java WOExtensions. Framework مولفه های اضافی قابل استفاده مجدد وب را در بردارد.
– JavaXML. Framework پشتیبانی محتوایXML- به عنوان مثال، تجزیه کننده Apache XML، را در بردارد.
یک برنامهDirect to web این چارچوب ها را در بر می گیرد.
– Java DTGeneration. Framework پشتیبانی ایجاد صفحات Direct to web را فراهم می کند.
– Java Direct to web. Framework کلاس هایی برای توسعه سریع برنامه های وب مبتنی برHTML را فراهم می آورد.
– Java EOPeojects. Framework سرویس هایی برایwebobjects Builder ارائه می دهد- به عنوان مثال، کلیدها و اقدامات را از یک فایل جاوا مولفه وب برگشت می دهد.
محصول (products)
بعد از آنکه برنامه خود را ساختید، گروه products شاملwrapper برنامه می شود که فولدری به اسم نام پروژه با پسوندwoa می باشد- به عنوان مثال، اگر نام پروژه My wb App باشد پس، wy web App. Woa پوشه (wrapper) برنامه ساختاری مشابه ساختار چارچوب دارد که موارد ذیل را در بر می گیرد:
– برنامه قابل اجرا- به عنوان مثال wy web App.
– منبع برنامه در گروه Contents.
گروه Resowrec از مولفه های وب برنامه و همین طور فایل های دیگری تشکیل می شود که برنامه شما در زمان اجرا به آن ها نیاز دارد.
– اطلاعات سرور وب برنامه کاربردی در گروه Contents. اگر برنامه شما فاقد اطلاعات سرور وب باشد، پس گروه web server Resurces در گروه Contents پدیدار نمی شود.
هنگامی که برنامه خود را ساخته و نصب کردید، Xcode همه فایل های گروه web server Resurces شما را در فولدری به نام web server Resurces دروه پوشه برنامه کپی می کند. اگر مولفه های جاواClient- slide در پروژه خود دارید، آنها هم در فولدر web server Resurces کپی می شود.

مقصد ها
مقصدهای یک برنامه کاربردی وب عبارتند از:
– برنامه کاربردی- به عنوان مثال My web App.
– Application Server قسمتی از برنامه شما را می سازد که مولفه های وب و شیء های سازمانی را خلق می کند.
– web server منابعی می سازد که می تواند توسط سرورHTTP به کار رود مثل تصاویر و فیلم های Quik time ذخیره نشده در دیتابیس.
ساخت برنامه شما
ساخت و نصب برنامه کاربردی وب شما ساده است. فقط مقصد برنامه را انتخاب کرده و دکمه Build and go در X Code را کلیک کنید. برای اجرا و تست برنامه خود از مرورگر وب استفاده کنید. به عنوان مثال ، اگر الگوی Direct to web را انتخاب کردید، برنامه Direct to web شما ساخته و آغاز می شود. Safari همچنین آغاز شده و با URL برنامه Web objects به برنامه شما متصل می شود.

نصب برنامه کاربردی شما
ممکن است بخواهید برنامه را برای تست در ماشین توسعه خود نصب کنید. قبل از نصب یا آرایش برنامه، باید چگونگی کار سرور وب و مکان مورد نیاز نصب فایل ها را درک کنید.
برخی فایل ها در برنامه وب – مثل فایل صوتی و تصویری – باید تحت ریشه document سرور وب ذخیره شود تا سرور به آنها دسترسی داشته باشد. زیرا فایل ها بخشی از HTML پویا بوده که سرور وب به کلانیت های وب ارسال می کند. فایل های باقی مانده – نظیر کد سرس و مولفه های شما – باید برای برنامه شما و نه الزاماً خود سرور وب قابل دسترسی باشد. از این رو، هنگامی که یک برنامه وب را نصب کرده یا آرایش می دهند، فایل های محصول شما تقسیم می شود – این فایل های مورد نیاز سرور وب در ریشه document قرار داده شده و همه فایل های دیگر در جای دیگری ذخیره می شود. به این نوع نصب، نصب دو بخشی (Split install) گفته می شود.
خلق مولفه های وب
مولفه های وب در چگونگی کار محتوای پویا در webobject اساسی هستند. بطور نمونه، اگر اطلاعات روی وب سایت شما غالباً تغییر بیابد یا براساس برخی شرایط تغییر می کند Nebobjects را انتخاب کنید.مثالهایی از وب سایتهای پویا عبارتند از خبرهای آنلاین، فروشگاهها، رای گیری و آمار و ارقام. Webobjects هم برای هر وب سایتی ایده آل است که جلسات کاربر را پیگیری کرده و سرویس های شخصی نظیر تالیف محتوا و صفحات رایج ارائه می دهد. محتوای پویا را می توان برای اولویت های کاربر و معیار جستجو تنظیم کرد.
مولفه اهی وب را در نمایش صفحات وب یا صفحات وب جزیی بوجود آورده از سوی وب سایت شما استفاده کنید. مولفه های وب در واقع الگوهایی برای ایجاد صفحات HTML هستند. مولفه های وب از عناصر پویا و ایستا ساخته می شود. برای متصل کردن نقاط مقابل HTML به متغیرها و متدهای کلاس مولفه وب خود از عناصر پویا استفاده کنید. برخی عناصر انتزاعی بوده و صرفاً در کنترل ایجاد HTML – مثلاً شرایط و تکرارها – بکار می رود.
بطور نمونه، اگر چه می توانید برنامه وبی را بدون استفاده از Enter prise Objects (شیء های سازمانی) خلق کنید اما ، وب سایت شما صفحات HTML را ارائه می دهد که با دیتای بدست آمده از شیهای سازمانی ذخیره شده شما دریک دیتابیس Back-end مشهور شده اند. از این رو، مولفه های وب با میانجی کردن بین ویوها (عناصر پویا ) و مدل های شما (شیء های سازمانی) شبیه کنترلرهای الگوی طراحی MVC رفتار می کنند. همچنین می توانند از عناصر انتزاعی استفاده کرده و گروهها – کنترلرهایی که شیء های سازمانی زیادی را دستکاری می کند را به روش های جالب خلق صفحات وب هوشمند نشان می دهد.
مولفه های وب از تمامی مزایای سیستم های شیء گرا بهره می گیرد. مولفه های وب قابل استفاده مجدد، حفظ و توسعه است. مولفه های وب می تواند مولفه های دیگر وب – مولفه هایی که صفحات کم اهمیت را نشان می دهند – همینطور عناصر پویا ، عناصر ایستا و تکست واضح را در بر داشته باشد. هر تگ HTML را می توان به الگوی HTML یک مولفه وب اضافه کرد.
مولفه های وب فولدرهایی هستند که به پروژه X Code خود اضافه می کنید. هر فولدری از یک فایل HTML ، WOD ، API و Java تشکیل می شود. فایل HTML قالب را نشان می دهد، فایل WOD اتصالات پویای عنصر را در بر می گیرد، فایل API هر نوع اتصالاتی را در بردارد که مولفه شما صادر می شود و فایل Java کلاس است که منطق کنترلر را پیاده سازی می کند. منطق کنترلر خود – شیوه ها و متغیرها – را با استفاده از X Code به کلاس Java اضافه کنید. می توانید فایل های دیگر را مستقیماً ویرایش کنید. اما به طور نمونه ، از Web Objects Builder – یک ویرایشگر گرافیکی – در طراحی مولفه های وب خود استفاده کنید. Web Objects Builder فایل های واقع در فولدر مولفه وب را خلق می کند.
این قسمت چگونگی استفاده مجدد و توسعه مولفه های وب را از دیدگاه یک برنامه نویس زبان جاوا تشریح می کند. برای اطلاعات بیشتر پیرامون چگونگی خلق گرافیکی مولفه های وب،Web Object Builder user Guide را مطالعه کنید.
اگر از دیتابیس back – end در ذخیره سازی شیء های سازمانی خود استفاده می کنید، باید ابتدا مدل EO خود را خلق کرده و سپس پروژه X Code خود را قبل از خلق مولفه هی وب ایجاد کنید. برای خلق شیء های معمولی سازمانی و مدل EO قسمت "ایجاد شیء های سازمانی" را مطالعه کنید. در مورد چگونگی ایجاد یک پروژه X Code قسمت "ایجاد پروژه ها " را مطالعه نمائید.
مولفه Main
بطور پیش فرض، هر برنامه Web Objects یک مولفه Mian در بردارد. این مولفه اساساً اولین صفحه نمایش داده شده به کاربران است مگر آنکه شما مشخص کنید آن صفحه Login یا تونل بقیه برنامه شماست.
به عنوان مثال، اگر هنگام خلق پروژه Xcode خود الگوی Web Application را انتخاب می کنید، Main.Wo در گروه Web Components آشکار مشخص می شود. برای باز کردن مولفه Main در Web Objects Builder ، روی Main.wo را دوبله کلیک کنید.
فایل های Java
هر مولفه وب از یک فایل Java برخوردار است که آنرا در اضافه کردن منطق کاری و کنترلر استفاده می کنید.
به عنوان مثال، اگر مولفه Main شما یک صفحه Login باشد، می تواند یک فیلد username و پسورد در برداشته باشد تا به کاربر اجازه دهد به وب سایت شما وارد شود، سپس ممکن است متغیرهای username و Pass word داشته باشید تا متن وارده کاربر را ذخیره کند. بعلاوه، زمانی که کاربر Return را وارد کرده یا دکمه Login را کلیک می کند، به متد عمل (action) نیاز دارید. مانند شکل یک ، این متغیرها و متدها را به Main.Java موجود در گروه Web Components اضافه کنید. بعد، عناصر پویا، عناصر Wotextfield ، WopasswordField و NosubmitButton را با استفاده از Web Objects Builder به متدها و متغیرهای خود اضافه کنید.
بطور متناوب می توانید با استفاده از Web Objects Builder که فایل Java را ویرایش می کند، متدها و متغیرها را به مولفه خود اضافه نمائید.
فایل های WOD و HTML
گاهی ممکن است به ویرایش مستقیم یکی از فایلهای مولفه وب نیاز داشته باشید. به هر حال، از آنجا که این فایلها به وسیله Web Objects Builder بوجود می آید، باید قبل از ویرایش، از فرمت این فایلها آگاه باشید. اگر فرمت این فایل ها را تغییر می دهید، ممکن است مولفه متغیر نشود یا در Web Objects Builder باز نشود.
به عنوان مثال، فرض کنید یک مولفه Main را با استفاده از Web Objects Builder ایجاد می کنید که یک رشته تکست را در بردارد، "The current time is" به وسیله عنصر Wostring دنبال می شود که زمان فعلی را نشان می دهد. بعلاوه، عنصر Wostring را به متد Current Time مولفه Main خود متصل کنید که زمان فعلی را برگشت می دهد. این اطلاعات در فایلهای WOD و HTML مولفه وب ذخیره شده که شما آنها را در X Code می بینید.
فایل HTML موجود در لیست یک از عنصر WEBOBJECT نشانگر موقعیت برخوردار است که wostring مقدار برگشتی توسط متد Current Time را تعبیه می کند. توجه کنید که عنصر به شکل <WEBOBJECT NAME=String 1 ></WEBOBJECT> تعریف می شود. یک مدخل متناظر در فایل WOD وجود داشته که از همان نام، string ، استفاده می کند.
لیست یک – نمونه فایل HTML
ارتباط بین عنصر Wostring و متد Current Time در فایل Wod لیست 2 اعلام می شود. مدخل صرفاً یک اتصال لیست شده، ارتباط بین صفت Value و متد Current Time دارد. زمانی این متد فراخوانی می شود که عنصر Wostring نیاز به نمایش مقدار خود دارد. فایل WOD تنظیمات عنصر دیگری را در بر می گیرد که در Webobjects Builder آشکار نمی شود.
لیست فایل WOD
چگونگی عملکرد عناصر پویا
هنگام برنامه نویسی با مولفه های وب، به درک چگونگی عملکرد عناصر پویا در زمینه حلقه درخواست پاسخ کمک می کند.
وقتی یک برنامه ساده ای را اجرا می کنید که زمان فعلی را در صفحه اصلی نظیر آنچه در قسمت "فایل های WOD و HTML " شرح داده شد، نشان می دهد، صفحه نمایشی مرورگر وب عنصر Wostring را جایگزین می کند که با زمان فعلی به مولفه Main اضافه کردید. اگر صفحه را دوباره لود کردید، تایم آپدیت می شود. WebObjects صفحه را در طی حلقه درخواست – پاسخ بطور پویا اسمبلی می کند.
وقتی به URL متناظر با برنامه خودتان در مرورگر وب دسترسی دارید، سرور وب آداپتور WebObjects را کنترل می کند – فرآیندی که نمونه های برنامه WebObjects را به سرورهای وب مرتبط می سازد. این برنامه از طریق صدها مرحله پاسخ را ایجاد می کند.
1- فایل HTML را مطالعه کنید.
WebObjects مانند یک سرور وب معمولی ابتدا فایل HTML را مطالعه می کنند.
2- عناصر WebObjects را رندر کنید.
WebObjects برخلاف یک سرور وب معمولی عناصر WebObject را قبل از بکارگیری فایل در سرور وب تجزیه می کند.
هنگامی که WebObjects با عنصر WEBOBJECT مواجه می شود، فایل WOD را برای مولفه متناظر وب می سازد. همه عناصر WEBOBJECT در فایل HTML قالب مولفه وب نام گذاری شده و نظیر لیست 2 ، هر یک بوسیله نام خود در فایل WOD فهرست می شود.
هر نوعی از عنصر WebObjects از منطق خاصی برای ساخت کد HTML برخوردار بوده تا به سرور وب برگردد. متعارف سازی این فرآیند با صفات تعریف شده توسط برنامه نویس مولفه وب صورت می گیرد. هر اتصالی در یک فایل WOD یا ایستا است یا پویا. اگر اتصالی ایستا باشد، مقدار فراهم شده مستقیماً استفاده می شود.
اگر اتصالی پویا باشد – یعنی صفتی به متغیر نمونه یا متد مرتبط باشد WebObjects متد را استنتاج کرده یا برای بدست آوردن مقدار در زمان اجرا به متغیر نمونه دسترسی دارد. به عنوان مثال، هنگامی که عنصر Wostring ارزیابی می شود، متد نام گذاری شده در اتصال Value خود CurrentTime را استنتاج می کند تا مقدار نمایش را بدست آورد. پیاده سازی Wostring شیء Nstimestamp را به تکست تبدیل می کند که در صفحه وب برگشتی به مرورگر وب بوجود می آید. قبل از برگشت Webpage به مرورگر، Webobjects کد HTML مولفه نشان داده شده در لیست 3 را به markup مشابه markup لیست 4 تبدیل می کند.
لیست 3- تفسیر کد HTML توسط WebObjects
لیست 4- ارسال WebObjects کد HTML به مرورگر وب
این فرآیند هر باری روی می دهد که مرورگر وب صفحه Main را درخواست می کند. اگر دوباره صفحه را لود کنید، متد دوباره استنتاج شده و مقدار تایم جدیدی نمایش داده می شود.
برای کسب اطلاعات بیشتر در مورد حلقه درخواست – پاسخ ، قسمت "حلقه درخواست – پاسخ " را مطالعه نمائید.
حفظ و نگهداری وضعیت
درک رابطه بین فایل های Java ، WOD و HTML مولفه وب بخش مهمی از توسعه WebObjects به شمار می آید. نه تنها متدها و متغیره را به مولفه خود اضافه کرده تا عناصر پویا را مقید سازد، بلکه همچنین می توانید بر متدها و متغیرها اضافه کرده تا وضعیت یک مولفه را حفظ کند.
هنگامی که متدها را به مولفه ای در WebObjects Builder اضافه می کنید، در واقع فایل سرس Java مولفه را ویرایش می کنید. وقتی چگونگی ظاهر مولفه را با افزودن عناصر اصلاح می کنید، خود فایل HTML را اصلاح می نمائید، وقتی عناصر پویا را به متغیرهای مولفه خود متصل می نمائید، خود فایل WOD را اصلاح می کنید.
بطور نمونه، بعد از استفاده WebObjects Builder در تعریف اجزاء اصلی یک مولفه وب می توانید جزئیات را با ویرایش مستقیم فایل های Java و HTML اضافه کنید (به ندرت به ویرایش یک فایل WOD نیاز می باشد). برای ویرایش فایل HTML یک مولفه وب در WebObjects Builder ، به آسانی از مد Source استفاده کنید – دکمه Source در منو ابزار را کلیک کرده تا از ویرایشگر HTML استفاده کنید. می توانید فایل جاوا را با استفاده از X Code ویرایش نمائید.
هنگامی که برنامه خود را آرایش داده و کاربران از طریق مرورگر وب به وب سایت شما وصل می شوند، صفحات وب طبق نیاز از مولفه های وب ایجاد می شود. در واژگان برنامه نویسی، مولفه های وب همگی زیر مجموعه های Wocoponent بوده و طبق نیاز معرفی می شود. به عنوان مثال، وقتی کاربر مولفه main مشروح در قسمت "فایل های WOD و HTML " را درخواست می کند، نمونه main خلق می شود. وقتی که زمان اضافه کردن WebObjects به محتوای Wostring می باشد، Value عنصری را جستجو می کند که به فایل WOD متصل است. اتصال Value با متد Current Time تنظیم می شود. از این رو ، WebObjects متد Current Time را به مثال مولفه وب می فرستد که زمان فعلی را برگشت می دهد.
مثالی از یک مولفه وب حداقل در دوچرخه حیات حلقه درخواست – پاسخ زنده است. در چرخه اول، صفحه وب رندر و ارائه می شود و در چرخه دوم ، مولفه مشخص می کند که بعداً کدام صفحه نشان داده می شود. اگر صفحه مشابه صفحه قبل نباشد، WebObjects مثالی از مولفه جدید را خلق می کند. سپس، مولفه قدیمی حذف شده یا در حافظه کش سرور ذخیره می شود تا به کاربران اجازه دهد تا پیمایش معکوس به صفحات قبلی داشته باشند. بهر حال، اگر مولفه نمایش مشابه و یکسان است، مثال به حیات خود ادامه می دهد. در این مورد، ورژن قبلی مولفه در حافظه کش Back track ذخیره می شود. جهت کسب اطلاعات بیشتر پیرامون عمل یک تراک (پیمایش معکوس) قسمت "مدیریت حفاظه کش و بک تراک" را مطالعه کنید.
روش دیگر استفاده از متغیرها و متدها در فایل سرس Java ، حفظ وضعیت دیگر می باشد مثلا، پیگیری اقدامات کاربر هنگامی که با برنامه شما رابطه متقابل دارد.
مثال: نمایش شمارش صفحه
قسمت های زیر چگونگی حفظ وضعیت در مولفه وب شما را با پیاده سازی یک برنامه ساده وب نشان می دهد که تعداد دفعات نمایش مولفه main توسط یک کاربر واحد را می شمرد. این مثال کنتورو هایپرلینک Refresh صفحه را به مولفه main اضافه می کند. برای حفظ وضعیت کنتور برای دوره جلسه از مولفه Web استفاده می کند.
ایجاد پروژه شما
یک برنامه ساده وب را بدینگونه خلق کنید:
1- X Code را شروع کرده و منوی File > New Project را انتخاب کنید.
2- الگوی برنامه WebObjects را انتخاب کرده و Next را کلیک کنید.
3- در کادرهای محاوره ای مانده روی Next کلیک کرده تا همه مقادیر پیش فرض را انتخاب کنید.
4- روی Finish در کادر نهایی کلیک کرده تا پروژه را بوجود آورید.
افزودن متغیرها به مولفه شما
ابتدا متغیر و کدی را به مولفه Main اضافه کنید تا با شمارش با هر بار نمایش صفحه افزایش یابد.
1- Main.Wo در Web Objects Builder را با دوبله کلیک آن در X Code باز کنید.
2- Add Key را از منو Inter face در منو ابزار پنجره Main.wo انتخاب کنید.
3- کلیدی از نوعint به نام Load Count اضافه کنید و روی دکمه Add کلیک کنید.
4- فایل Main.Java را بررسی کرده تا تائید کند که متغیر اضافه شده است. نظیر لیست کد را برای شروع Load Count اصلاح کنید.
لیست 5- افزودن متغیر
افزودن عناصر پویا به مولفه خود
سپس از متغیر در نمایش تعداد دفعات لود صفحه استفاده کنید. برای نمایش شمارش لود در صفحه وب، نیاز بوده عنصر Wostring را با استفاده از WebObjects Builder به مولفه Main اضافه کنید.
1- لیبل و عصر Wostring را به Main.Wo اضافه کنید.
الف – This page has been viewed را وارد کنید.
ب – فاصله و عنصر Wostring را به سمت راست لیبل اضافه کنید.
ج – فاصله و times را به سمت راست عنصر Wostring اضافه کنید.
2- ، از Loadcount را در مرورگر شیء به عنصر Wostring دراگ کنید تا آنرا به صفت Value عنصر Wostring متصل کنید.
افزودن متدها به مولفه
حالا، افزودن یک روش ضروری بوده تا صفحه را با استفاده از hyperlink دوباره لود کنید. عناصر WoHyperlink و هایپرلینک های معمولی در WebObjects متدها را فراخوانی می کنند – متدها در فایل سرس Java مولفه تعریف می شود. این متدها، شیوه های action (اقدام) خوانده می شود. همه متدهای اقدام یک مولفه وب نمایشگر صفحه بعدی را برگشت می دهد. اگر یک متد اقدام null را برگشت دهد، پس دوباره همان صفحه نمایش داده می شود. جزئیات بیشتر متدهای action در قسمت پردازش درخواست پوشش داده می شود.
مراحل زیر را برای افزودن یک متد اقدام refresh time دنبال کنید.
1- متد اقدام را اضافه کنید.
الگوی مولفه Main در WebObjects Builder را باز کرده Add Action را از منو Interface منو ابزار انتخاب کنید.
الف – عمل refresh time را نام گذاری کنید.
ب – null را از منو بالا رو Component انتخاب کنید.
مقدار برگشتی یک متد اقدام نمایش صفحه بعدی (مولفه وب) را ارائه می دهد. وقتی null را برگشت می دهید، صفحه فعلی دوباره ترسیم می شود.
ج – Add را کلیک کنید.
2- هایپرلینک را اضافه کنید.
نشانه گر را زیر خط در محل نمایش شمارش لود قرار دهید.
منو Dynamic > Wohyper link را انتخاب کنید.
تکست پیش فرض یک لینک جدید Hyperlink می باشد. شما می توانید آنرا با انتخاب تکست و تایپ چیزی مناسبتر از آن مثل Refresh Time جایگزین کنید.
3- متد refresh Time را به عنصر Wohyperlink وصل کنید. متد refresh Time را به صفت WoHyperlink oction مقید سازید.
از متد refresh Time در لیست Main به عنصر WoHyperlink دراگ کنید. وقتی دکمه ماوس را رها می کنید، لیست غیر استاندارد صفات آشکار می شود. صفت action را انتخاب کنید تا نشان دهد که می خواهید متد refreshtime هنگام کلیک روی لینک فراخوانی شود.
4- Main.Wo را ذخیره کنید.
افزودن منطق بر متدها
در نهایت، متد Refresh Time را با استفاده از X Code اصلاح نمائید بنابراین همانطور که در لیست 6 نشان داده می شود، متغیر Load Count در هر بار استناج شدن افزایش می یابد.
* لیست 6- پیاده سازی یک متد action
چگونگی عملکرد حفظ وضعیت
اگر برنامه کاربردی قسمت "مثال: نمایش شمارش صفحه" را ساخته و اجرار کردید، و Refresh time را کلیک کردید، کنتور لود و تایم آپدیت می شود. شمار لود با هر بار نمایش صفحه توسط یک کاربر خاص افزایش می یابد. این با استفاده از شیء session انجام می شود، شیء که ارتباط بین یک برنامه و یک کلانیت خاص را نشان می دهد.
با هر بار کلیک hyperlink توسط کاربر،webobjects شیء Main را ایجاد کرده و آن را از طریق یک شیء Session به مرورگر وب شما مربوط می سازد. هر بار که با کلیک Refresh time با برنامه ارتباط متقابل برقرار می کنید، از همان شیء main استفاده می شود. اگر پنجره مرورگر دیگری را باز کرده و دوباره با استفاده از URL نمایش داده شده در کادرXcode Run به برنامه وصل شوید، مثال مجزایی از Main خلق شده و به آن پنجره مربوط می شود. از این پس، می توانید به طور انفرادی با هر دو پنجره کار کنید. در واقع نه تنها مثال جدیدی از main خلق می شود بلکه شیء Session جدیدی هم به وجود می آید.
WebObjects مشخص می کند هنگامی ایجاد یک Session جدید مورد نیاز است که URL وارده فاقد Session ID باشد. اولین باری که شما با استفاده از URL نظیر URL لیست 7 به برنامه وصل می شوید، WebObjects یک Session را ایجاد کرده و آنرا به Session ID و اطلاعات دیگر اختصاص می دهد. این اطلاعات به URL برگشتی به مرورگر شما به همراه صفحه وب اضافه شده تا نمایش داده شود (لیست 8 را ببینید). وقتی درخواست دیگری را از مرورگر خود – مثلاً با کلیک Refresh time – ارسال می کنید، WebObjects از Session ID رمزگذاری شده در URL استفاده کرده تا Session پردازش کننده درخواست را موقعیت یابی کند.
برای کسب اطلاعات بیشتر در مورد مدیریت وضعیت با استفاده از برنامه کاربردی و شیء های Session ، قسمت "استفاده از برنامه کاربردی و شیء های Session " را مطالعه کنید.
لیست 7- URL که باعث معرفی یک شیء Session می شود.
لیست 8- URL با آی دی Session
استفاده از برنامه و شیء های Session
وب ماهیتاً یک وسیله فاقد وضعیت و حالت می باشد. یک سرور وب درخواستی می گیرد، پاسخی ارائه می دهد و بدون آگاهی از درخواست های قبلی همان کاربر، پاسخ را به مرور وب درخواست کننده بر می گرداند.
بهر حال، یک برنامه وب می تواند حالت بین درخواست های همان کاربر را حفظ کند تا تجربه قابل قبول کاربری را ارائه دهد. به عنوان مثال، وب سایت های فراوانی به شما اجازه می دهد با استفاده از کارت خریدی کالاها را خریداری کنید. چنین برنامه هایی محتوای کارت خرید شما را هنگام هدایت وب سایت به خاطر می آورند. WebObjects یک شناسه منحصر به فرد را با هر درخواست وارده رمزگذاری می کند. این شناسه در حفظ وضعیت در سراسر یک وسیله بی حالت دیگری بکار می رود.
در حالیکه می توانید اطلاعات را برگردانده و بین مولفه های وب جلو بروید، اغلب نیاز بوده وضعیت مشترک بین مولفه ها را حفظ کنید. به جای ارسال این اطلاعات از مولفه وب به مولفه، می توانید آنرا در سطح بالاتر هر برنامه کاربردی یا هر جلسه (Session) ذخیره کنید.
برنامه کاربردی
وقتی برنامه ای را با استفاده یکی از الگوهای X Code برنامه وب خلق می کنید، Application Java به پروژه شما اضافه می شود. Application زیر مجموعه ای از Woapplication است. WebObjects یک شیء Applications را در راه اندازی معرفی می کند. همه مولفه های وب برنامه شما راربطه ای با این شیء Application دارند application ( ) را به مولفه وب فرستاده تا شیء Application را بطور برنامه ای بدست آورید. شی ء های Session و برنامه کاربردی هم در مرورگر شیء WebObjects Builder پدیدار می شود از این رو می توانید عناصر پویای خود را مستقیماً در ویژگیهای آنها مقیدسازی کنید.
می توانید متدهای قبلی از Woapplication را ouerride کرده تا رفتار برنامه وب خود را متعارف کنید. مثلا می توانید متدهای WOApplication را از مقدار اولیه ده استنتاج کرده تا رفتار پیش فرض یک تراک (پیمایش معکوس) را تغییر دهید (برای جزئیات بیشتر "قسمت مدیریت حافظه کش و بک تراک" را مطالعه کنید.
همچنین می توانید متغیرها و متدها را به کلاس Application اضافه کرده تا شیء ها را ذخیره کرده و منطق کاری را اضافه کنید که می خواهید بین مولفه های وب و Sessions مشترک باشد. مثلاً ، هر شیء صرفاً خواندنی (read-only) و مشترک Sessions را میتوان برای توسعه عملکرد در شیء Application ذخیره کرد.
بهر صورت، اگر می خواهید شیء های سازمانی مشترک باشند، از EOSHaredEditing ontext استفاده کنید نه از کلاس Application برای چگونگی پیکربندی مشخصات واکنشی در مدل خود که شیء های سازمانی را در زمینه ویرایش مشترک قرار می دهد WebObjects enterprise Objects Programming Guide و EO Modeler user Guide را ببینید.
Session
Session یک دوره زمانی است که یک کاربر در آن زمان با برنامه شما رابطه متقابل دارد. از آنجا که هر برنامه کاربردی می تواند همزمان کاربرهای چندگانه ای داشته باشد. ممکن است session های باز چندگانه ای هم داشته باشد. هر session از دیتای خاص خود و کپی های cach مولفه های خاص خود برخوردار بوده که کاربر آنها را درخواست می کند.
session به عنوان نمونه ای از کلاس session (session.java در یک پروژه برنامه WebObjects) نشان داده می شود. Session زیر مجموعه ای از Wosession است. اساساً ، Sesson صرفاً رفتار موروثی داشته اما می توانید متغیرها و متدهای معمولی را اضافه کنید. مثلاً ، اگر در حال ساخت یک برنامه خرید آنلاین هستید، Session مکان مناسبی برای ذخیره سازی کارت خرید کاربر خواهد بود زیرا session به یک کاربر خاص پیوند خورده و تا وقتی کاربر از برنامه کاربردی بهره می گیرد ایستادگی می کند.
همانطور که در قسمت "حلقه درخواست – پاسخ" شرح داده شده وقتی یک درخواست وارده پردازش می دهد ، WebObjects بطور اتوماتیک شیء Session مربوط به کاربری را فعال می کند که درخواست را صادر کرده است.
کلاس Wocomponent متدی برای دست یابی session فعال همزمان را در بر می گیرد. کلاس های Java مولفه های وب زیر مجموعه های WOComponent بوده و WebObjects بطور اتوماتیک Session صحیح را هنگام پردازش درخواست فعال می کند. با ارسال پیام Session ( ) به یک WOComponent ، شیء Session Object را برای کاربر فعلی برگشت می دهد.

مثال : خرید
اگر فروشگاه آنلاینی را پیاده سازی می کنید، کاربران شما به کارت خریدی نیاز داشته تا خریدشان را قبل از بررسی ذخیره کنند. از آنجا که کارت خرید به یک کاربر واحدی تعلق داشته و صرفاً در مدت عمر مفید Session معتبر است، ذخیره سازی کارت خرید در شیء Session منطقی است. مثلاً ، نظیر لیست 1 ، مثال Per store واقع در Developer / Examples/ Java webobjects/Petstore wojava / صفات Cart و Current Account را به کلاس Session اضافه می کند.

47


تعداد صفحات : 48 | فرمت فایل : Word

بلافاصله بعد از پرداخت لینک دانلود فعال می شود