یکی از اهداف اولیه و مهم دربرپاسازی شبکه های کامپیوتری ،اشتراک منابع است . منابع موجود در کامپیوتر به دو گروه عمده منابع فیزیکی ( چاپگر) و منابع منطقی ( فایل ها ) تقسیم می گردند. پس از ایجاد یک شبکه می توان با توجه به بستر ایجاد شده عملیات متفاوتی را انجام داد :
اشتراک یک چاپگر به منظور استفاده توسط کامپیوترهای موجود در شبکه
استفاده از یک خط ارتباطی اینترنت توسط کامپیوترهای موجود در شبکه
اشتراک فایل ها ی اطلاعاتی با محتویات متفاوت
استفاده از بازیهای کامپیوتری که چندین کاربر بصورت همزمان می توانند از آن استفاده نمایند.
ارسال خروجی دستگاههائی نظیر دوربین های وب برای سایر کامپیوترهای موجود درشبکه
در اغلب فرم های وب نیاز به دستیابی داده ها و نمایش آنها و در برخی موارد ویرایش و بهنگام سازی آنها وجود خواهد داشت . آگاهی از تکنولوژی های دستیابی به داد ه ها در صفحات فرم های وب، باعث طراحی و پیاده سازی نرم افزار های موثر و با کارائی بیشتر تحت وب خواهد شد. در این مقاله به بررسی مفاهیم مربوط به دسیتابی داده ها در صفحات فرم های وب پرداخته و نحوه استفاده از کنترل های مربوطه جهت نسبت دهی داده ها در صفحات را بررسی خواهیم کرد.
فرم های وب ، اغلب ملزم به نمایش اطلاعاتی هستند که ماحصل بازیابی آنان از یک منبع داده ئی نظیر یک بانک اطلاعاتی و یا یک سند XML خواهد بود. ساختار و معماری صفحات فرم های وب این امکان را فراهم می نماید که با اتکاء به برخی روش ها از منابع متفاوت داده ئی در صفحات استفاده و با نسبت دهی کنترل ها به داده ها و پردازش داده های مورد نظر، امکان انجام عملیات دلخواه و مرتبط با داده ها را بسرعت و با کیفیت بالا انجام داد. دستیابی به داده ها در فرم های وب با دستیابی به داده ها از طریق فرم های ویندوز و سایر برنامه های تحت ویندوز متفاوت بوده و همین امر یکی از وجوه تمایز اساسی بین برنامه های تحت وب با سایر برنامه ها است.
اصول اولیه دستیابی به داده ها در صفحات فرم های وب
دستیابی به داده ها در صفحات فرم های وب با تاکید بر اصول اساسی زیر انجام می گیرد:
? استفاده از یک مدل Disconnect
? خواندن بیشتر داده ها نسبت به ویرایش آنها
? به حداقل رساندن استفاده از منابع موجود بر روی سرویس دهنده
? دستیابی به داده ها با استفاده از پردازش های راه دور( دستیابی به داده های توزیع شده )
در ادامه به تشریح هر یک از اصول فوق خواهیم پرداخت .
Disconnected Model . صفحات فرم های وب از نوع Disconnect می باشند. پس از درخواست یک فرم وب از طرف سرویس گیرنده و ارسال درخواست برای سرویس دهنده ، فرم ایجاد ،پردازش ،ارسال و در نهایت از حافظه سرویس دهنده حذف خواهد شد. نحوه دستیابی به داده ها در یک صفحه فرم وب نیز حکایتی اینچنین دارد. در این راستا و در زمان پردازش فرم بر روی سرویس دهنده ، داده ها ی مورد نظر خوانده و یا ویرایش شده و در نهایت فرم برای متقاضی ( سرویس گیرنده ) ارسال خواهد شد. در چنین حالتی داده ها بر روی سرویس دهنده حذف خواهند شد ( از درون حافظه و یا بافر های استفاده شده برای پلسخگوئی به درخواست ) .
مدل فوق دارای چندین نکته مهم بوده که شناخت آنان برای مواردیکه در صفحات فرم های وب با داده ها سروکار داریم ، بسیار مفید خواهد بود.
? داده هائی که قصد استفاده از آنان را خواهید داشت، بصورت خودکار و پس از رفت و آمدهای متعدد بین سرویس گیرنده و سرویس دهنده ،قابل دستیابی نخواهند بود. در صورتیکه بخواهیم به داد ه ها دستیابی داشته باشیم می بایست هر زمان که صفحه برای سرویس دهنده پست می گردد ، مجددا" داده ها از منابع مربوطه خوانده شوند. در این راستا می توان با نوشتن کدهای اضافه که در صفحه مستقر خواهند شد ،اقدام به ذخیره سازی داده ها نموده و در زمان پردازش فرم و از طریق کدهای نوشته شده مجددا" به آنها دستیابی پیدا کرد.
? در زمان پردازش می توان با منابع داده ئی یک ارتباط برقرار و پس از خواندن و یا نوشتن داده ها ،اقدام به بستن ارتباط ایجاد شده با منابع داده ئی نمود. تصور اینکه ارتباط با منبع داده ئی را فعال نگه داشته تا در آینده بتوان مسائل مربوط به مدیریت داده ها و دستیابی به داده ها را بهبود بخشید ، نادرست و انتظاری نامعقول است .
? در زمان رفت و آمد یک صفحه بین سرویس گیرنده و سرویس دهنده عملیات مربوط به دستیابی به داده ها انجام خواهد گرفت . مثلا" در اولین مرتبه که صفحه صدا زده می شود ،ممکن است داده ئی از منبع مورد نظر خوانده و کنترل های موجود بر روی صفحه را به آن نسبت داد،زمانیکه کاربر کلیدی (Button) را فعال نمائد، می توان داده ئی را از یک کنترل گرفته و در منبع داده ئی ذخیره نمود.
خواندن و بهنگام سازی داده ها . در اغلب فرم های وب ، نوع دستیابی به داده ها بصورت فقط خواندنی است . در مواردی هم ممکن است کاربر داده ئی را برای ثبت ، درج و یا بهنگام سازی در منبع داده ئی ارسال نماید. چون اغلب عملیات دستیابی به داده ها بصورت فقط خواندنی است ،معماری Data-Binding ( نسبت دهی داده ها ) در فرم های وب ، پاسخی به این نیاز بوده است . بدین ترتیب Data-Binding ، باعث نمایش داده ها در کنترل مربوطه خواهد شد. بهنگام سازی داده ها قطعا" Overhead در یک صفحه را افزایش خواهد داد. در چنین حالتی صفحه می بایست دارای چندین نسخه از رکوردها برای ویرایش و همچنین شامل منطق مربوط برای انجام عملیاتی نظیر : درج و حذف رکوردها باشد. بدلیل افزایش لود بر روی صفحات ، بخشی از حافظه اصلی بر روی سرویس دهنده و سایر منابع مورد نظر بخدمت گرفته خواهند شد.
به حداقل رساندن میزان استفاده از منابع موجود بر روی سرویس دهنده .صفحات فرم های وب ، قبل از ارسال برای مرورگر سرویس گیرنده می بایست بر روی سرویس دهنده پردازش گردنند. هر نوع عملیاتی که منجر به دستیابی به داده ها در صفحه گردد ، باعث افزایش لود عملیاتی سرویس دهنده از دو بعد زمان پردازش و استفاده از حافظه خواهد شد. در مواردی هم که نیاز به ذخیره سازی داده ها باشد استفاده از منابع در زمانی که صفحات پردازش نشده اند نیز وجود خواهد داشت . دستیابی به داده ها در صفحات فرم های وب نیازمند یک بررسی دقیق و کارشناسی و نحوه استفاده از منابع است . در این راستا دو اصل زیر را می توان همواره مد نظر داشت :
? در هر صفحه صرفا" به بخشی از اطلاعات که لازم است، دستیابی و از اخذ اطلاعات غیرضروری و گاها" حجیم در یک صفحه وب ، اجتناب ورزید.
? در صورت امکان از گزینه های state management ( متکی بر سرویس گیرنده ) استفاده گردد.
صفحات وب در لایه نمایش یک برنامه تحت وب عمل کرده و می توان از طریق آنان به داده ها دستیابی پیدا کرد در این راستا ترجیح داده می شود که منطق دستیابی به داده ها را از بخش UI بکمک استفاده از عناصر دیگر نظیر سرویس های وب Xml و ... تفکیک نمود.
صفحات فرم های وب، بعنوان یکی از اجزای دات نت ،داده های خود را با سایر عناصر پردازشی از طریق یک جریان ممتد Xml انجام می دهند. در این زمینه نیاز به اقدام مستقیم جهت کار با Xml نخواهد بود( ارتباط بین اجزاء). فریمورک صفحات وب ( DataSet ) تبدیلات فوق را بصورت خودکار انجام خواهد داد. در صورت نیاز و در موارد خاص می توان دستیابی به داده ها را در یک برنامه تحت وب، مستقیما" با فرمت Xml انجام داد.
منابع داده (Data Source) برای صفحات فرم های وب
معماری صفحات فرم های وب، امکانات کاملا" انعطاف پذیری را در رابطه با داده ها ارائه نموده است . امکانات فوق از دستیابی به بانک های اطلاعاتی سنتی تا استفاده از سندهای متکی بر Xml تا اخذ اطلاعات در زمان اجراء و ذخیره آن در یک بردار را شامل می شود.
? دستیابی به بانک های اطلاعاتی . برای خواندن و نوشتن داده ها از بانک های اطلاعای از ADO.NET استفاده می گردد. ADO.NET شامل امکانات لازم جهت مدیریت داده ها ( ارتباطات و اشیاء مورد نیاز ) جهت ارتباط با سرویس دهنده SQL و یا یک بانک اطلاعاتی سازگار با OLE-DB است . ADO.NET همچنین امکاناتی را برای دستیابی به داده ها از طریق یک Dataset ( در این حالت یک ارتباط دائم و پیوسته با بانک اطلاعاتی وجود نخواهد داشت ) که داده ها در بخشی از حافظه Cache شده اند ،را پیش بینی نموده است . امکان استفاده از اشیاء ADO.NET بمنظور اجرای دستورات SQL و یا Stored procedure بصورت مستقیم نیز وجود خواهد داشت .
? XML Data . یکی دیگر از منابع داده ئی در صفحات فرم های وب ،استفاده از سندهای Xml است . بمنظور استفاده و کار با این نوع سندها می توان از دو روش عمده زیر استفاده نمود:
? در صورتیکه داده های Xml ساختیافته باشند ،می توان آن را به یک Dataset تبدیل و با استفاده از توابع داده ئی ADO.NET عملیات مربوط به خواندن و یا بهنگام سازی داده ها را انجام داد.پس از انجام عملیات مورد نظر می توان مجددا" داده ها را به فرمت Xml تبدیل تا قابل استفاده برای سایر پردازش هائی باشند که قصد استفاده از این داده ها را دارند.
? در صورتیکه داده ای Xml ساختیافته نباشند ،می توان از توابع مربوط به Parse نمودن و پردازش در System.Xml ( یک NameSpace است ) جهت انجام عملیات دلخواه بر روی داد ه ها استفاده کرد. در صفحات فرم های وب ، می توان این کار را از طریق استفاده از کنترل های سرویس دهنده وب Xml انجام داد.
? سایر منابع داده ئی . صفحات فرم های وب ، این امکان را فراهم می نمایند که بصورت مجازی با سایر داده ها نیز ارتباط برقرار گردد. معماری Data Binding در صفحات فرم های وب این امکان را فراهم می آورد که یک کنترل را به هر نوع ساختاری بتوان نسبت داد. مثلا" می توان هر نوع برداری را به یک کنترل نسبت داد. بمنظور انعطاف بیشتر می توان Data binding را در زمان اجراء انجام داد . هر کنترل ، یک رویداد Data Binding را حمایت خواهد کرد.با نوشتن Handler مربوطه برای این رویداد می توان کنترل هائی را برای هر صفحه و هر نوع داده انجام داد.