یکشنبه, ۲۷ خرداد, ۱۴۰۳ / 16 June, 2024
مجله ویستا

معماری برنامه های مبتنی بر داده


معماری برنامه های مبتنی بر داده

داده ها در برنامه های كامپیوتری دارای نقشی بسیار مهم بوده و همواره نحوه ذخیره و بازیابی آنان از مهمترین مباحث در دنیای گسترده نرم افزار بوده و خواهد بود فراموش نكنیم كه هدف از ذخیره سازی داده ها, بازیابی آنان در زمان مناسب و با سرعت مطلوب است

داده ها در برنامه های كامپیوتری دارای نقشی بسیار مهم بوده و همواره نحوه ذخیره و بازیابی آنان از مهمترین مباحث در دنیای گسترده نرم افزار بوده و خواهد بود. فراموش نكنیم كه هدف از ذخیره سازی داده ها، بازیابی آنان در زمان مناسب و با سرعت مطلوب است. روش های ذخیره سازی داده ها در بستر زمان، دچار تغییر و تحولات گسترده ای شده و با ظهور پدیده اینترنت و ضرورت طراحی و پیاده سازی نرم افزار بر روی بستر فوق وارد مرحله جدیدی شده است. در این مقاله به بررسی معماری برنامه های كامپیوتری با محوریت داده پرداخته و گزینه های ذخیره سازی داده ها را بررسی می كنیم.

ذخیره سازی داده ذخیره سازی داده ها، روشی به منظور ذخیره اقلام متفاوتی از اطلاعات در كنار یكدیگر با هدف تشكیل یك واحد اطلاعاتی منسجم و یكپارچه است. اقلام اطلاعاتی منفرد، به تنهائی كمتر مورد استفاده قرار می گیرند. اطلاعات مورد نظر زمانی بعنوان منابع اطلاعاتی با ارزش مطرح خواهند بود كه ما قادر به ذخیره سازی آنان درساختاری مناسب و همراه با سایر اقلام اطلاعاتی باشیم.

برای ذخیره سازی داده ها از روش های متعددی استفاده می گردد:

▪غیر ساختیافته:

در این روش، داده ها دارای هیچگونه ساختاری نمی باشند (نظیر Memo های ساده)

▪ساختیافته - غیر رابطه ای:

داده ها بصورت واحدهای مجزا قرار می گیرند. سازماندهی واحدها عموما با توجه به اولویت استقرار آنها تعیین می گردد. فایل های (CSV)Comma Separated valueو یا فایل هائی كه محتویات آنان توسط Tab از یكدیگر جدا می شوند، فایل های صفحات گسترده نظیر Excel، فایل های سرویس دهنده Exchange، فایل های Active Directory، فایل های (ISAM)Indexd sequential access method نمونه هائی در این زمینه می باشند.

▪سلسله مراتبی:

در این روش، داده ها به صورت یك ساختار درختی سازماندهی می گردند. هر درخت دارای مجموعه ای از گره بوده كه هر گره خود می تواند شامل چندین گره دیگر باشد. سندهای داده XML، نمونه ای از این مورد است.

▪بانك های اطلاعاتی رابطه ای:

در روش فوق، داده ها در جداولی سازماندهی می گردند. ستون ها در جدول شامل یك نوع خاص داده بوده و سطرها شامل ركورد خاصی از اطلاعات می باشند. جداول می توانند از طریق ستون های خاصی به یكدیگر مرتبط شوند تا امكان استفاده از داده های مشترك (یكسان) بین آنها فراهم گردد. سرویس دهنده SQL، بانك اطلاعاتی Access و بانك اطلاعاتی Oracle نمونه هائی در این زمینه می باشد.

▪بانك اطلاعاتی شی گرا:

در این روش داده ها بصورت مجموعه ای از اشیاء سازماندهی می شوند. نظیر Objectivity/ DB

●محیط های متصل (Connected)

در گذشته به منظور دستیابی به داده ها همواره از یك محیط متصل، استفاده می گردید. یك محیط متصل، محیطی است كه كاربر و یا برنامه مورد نظر، می بایست بصورت پیوسته به یك منبع داده متصل باشند. روش فوق دارای مزایای زیر است:

۱ـ یك محیط ایمن كه پشتیبانی آن ساده تر خواهد بود.

۲ـ كنترل همزمانی بسادگی انجام خواهد شد.

۳ـ داده ها نسبت به سایر روش ها ی موجود، به هنگام تر می باشند.

□معایب:

۱ـ می بایست یك اتصال پیوسته با شبكه وجود داشته باشد.

۲ـ توسعه سیستم، دارای چالش های خاص خود است.

▪مثال:

كارخانه ای كه نیازمند یك اتصال دائم و همیشگی با سرویس دهنده مربوطه به منظور مدیریت و آگاهی از آخرین وضعیت محصولات ورودی و خروجی به انبار مربوطه است.

یك بنگاه تجاری كه نیازمند یك اتصال دائم به منظور آگاهی از آخرین وضعیت اطلاعاتی در رابطه با تعداد و قیمت سهام است.

●محیط های غیرمتصل Disconnected

همزمان با پیدایش اینترنت، سناریوی عملیات غیر متصل به امری عادی تبدیل شده است. به موازات افزایش استفاده از دستگاههای handheld، رویكرد فوق، بسیار متداول شده و مورد توجه قرار گرفته است. Laptop، Notebook و سایر كامپیوترهای قابل حمل، این امكان را فراهم كرده اند كه از برنامه ها حتی در مواردی كه ارتباطی با سرویس دهنده و یا بانك اطلاعاتی وجود ندارد، بتوان استفاده نمود. در اغلب حالات، افراد بصورت كامل در یك محیط متصل و یا غیر متصل كار نمی كنند، بلكه محیط استفاده شده تلفیقی از دو رویكرد فوق است. یك محیط غیر متصل، محیطی است كه بر اساس آن كاربر و یا یك برنامه بصورت پیوسته به یك منبع داده مرتبط و متصل نخواهد بود. كاربران موبایل كه با Laptop كار می كنند، اولین كاربران در محیط های غیر متصل می باشند. كاربران می توانند زیر مجموعه ای از داده ها را دریافت و در یك كامپیوتر غیر متصل مستقر و پس از اعمال تغییرات لازم مجدداً آنان را به محل مركزی ذخیره سازی داده ها، ارسال نمایند.

□مزایا:

۱ـ قابلیت انجام عملیات و فعالیت های مورد نیاز در زمان دلخواه و ارتباط با منبع داده در زمانی دیگر به منظور پردازش

۲ـ سایر كاربران می توانند از ارتباط استفاده نمایند. (بهینه سازی اتصالات همزمان به یك منبع داده)

۳ـ بهبود در كارایی و توسعه برنامه

□معایب:

۱ـ داده ها همواره بهنگام نخواهند بود.

۲ـ تغییرات اعمال شده می تواند باعث بروز تناقص اطلاعاتی شده و می بایست اقدامات لازم در این خصوص، پیش بینی گردد.

□مثال:

در یك سیستم مالیاتی، ضرائب مالیاتی ممكن است طی یك سال و یا حتی چندین

سال یك مرتبه تغییر نمایند، بنابراین اصلاح جداول در بانك اطلاعاتی مربوطه، می تواند بصورت غیرمتصل و در زمان مورد نیاز انجام پذیرد.

●مدل های متفاوت برنامه ها برای دستیابی به داده ها

مدل های دستیابی به داده، همزمان با تكامل تدریجی كامپیوتر نیز متحول و دگرگون شده است (از بشدت محلی بودن تا بشدت توزیع شده). همزمان با افزایش كاربران و حجم اطلاعات، مدل دستیابی به داده از یك كاربر در رابطه با یك برنامه به چندین كاربر از طریق اینترنت، گسترش پیدا كرده است. آخرین تحول در این راستا به مدل مبتنی بر سرویس های وب XML، بر می گردد.

تعریف Tire: در یك مدل دستیابی به داده، Tire (ردیف - طبقه)، یك سطح منطقی و یا لایه ای است كه عناصر منطقی مربوط به یك برنامه بر روی آن مستقر می گردند( نه یك tire فیزیكی). . طبقات (لایه ها)، می تواند بر روی یك و یا چندین كامپیوتر و یا حتی Tire فیزیكی، مستقر گردند. تعداد Tire ها به تعداد سطوح بر می گردد(نه تعداد كامپیوترهای فیزیكی كه سرویس ها را تقسیم نموده اند). این سطوح عموماً دارای موارد زیر است:

□ Client-tire

این لایه با نام Presentation و یا User Service نیز نامیده شده و شامل بخش رابط كاربر است.

Bussiness Logic Tire: شامل منطقی است كه با منابع داده مرتبط می گردد. این Tire میانی (Middle)، شامل بخشی از برنامه است كه با داده ها مرتبط می گردد (مثلاً ایجاد یك ارتباط با منبع داده). لایه فوق، اغلب بصورت فیزیكی و در تمام لایه ها پیاده سازی می گردد. مثلاً بعنوان یك Stored Procedure در كنار منبع داده، یك كلاس همراه یك سرویس دهنده برنامه و یا حتی كدهای همراه برنامه سرویس گیرنده.

□ Data Service Tire

این لایه شامل داده هائی است كه Bussiness Logic از آنان در برنامه ها استفاده می نماید.

□Interoperability

شامل منطقی است كه امكان ارتباط بین برنامه های متعدد بر روی سیستم های عامل متفاوت و یا انواع متفاوت داده ها را فراهم می نماید. مثلاً سرویس های وب XML می توانند توسط هر نوع سیستم عامل، میزبان و استفاده گردند.

Srco.ir