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

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



•ذخیره سازى داده
ذخیره سازى داده ها روشى به منظور ذخیره اقلام متفاوتى از اطلاعات در کنار یکدیگر با هدف تشکیل یک واحد اطلاعاتى منسجم و یکپارچه است. اقلام اطلاعاتى منفرد، به تنهایى کمتر مورد استفاده قرار مى گیرند. اطلاعات مورد نظر زمانى به عنوان منابع اطلاعاتى با ارزش مطرح خواهند بود که ما قادر به ذخیره سازى آنان در ساختارى مناسب و همراه با سایر اقلام اطلاعاتى باشیم.براى ذخیره سازى داده ها از روش هاى متعددى استفاده مى شود که ساده ترین آنها روش غیرساخت یافته است.
در این روش، داده ها داراى هیچ گونه ساختارى نیستند (نظیر Memo هاى ساده). اما در روش ساخت یافته – غیررابطه اى داده ها به صورت واحدهــاى مجـــزا قرار مى گیـــرند. سازمــــاندهى واحدهـــا عموماً با توجه به اولویت استقرار آنهــا تعیین مى شود. فایل هاى (CSV (Comma Separated value و یا فایل هایى که محتویات آنان توسط Tab از یکدیگر جدا مى شوند، فایل هــاى صفحـــات گسترده نظیر Excel، فایل هاى سرویس دهنده Exchange، فایل هاى Active Directory، فـایل هــاى Indexd sequential access method)ISAM)، نمونه هایى در این زمینه هستند.

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

بانک هاى اطلاعاتى رابطه اى روشى مخصوص به خود دارند. در این روش داده ها در جداولى سازماندهى مى گردند. ستون ها در جدول شامل یک نوع خاص داده بوده و سطرها شامل رکورد خاصى از اطلاعات هستند. جداول مى توانند از طریق ستون هاى خاصى به یکدیگر مرتبط شوند تا امکان استفاده از داده هاى مشترک (یکسان) بین آنها فراهم گردد. سرویس دهنده SQL، بانک اطلاعاتى Access و بانک اطلاعاتى Oracle نمونه هایى در این زمینه است.
اما در بانک هاى اطلاعاتى شىء گرا داده ها به صورت مجموعه اى از اشیا سازماندهى مى شوند. نظیر Objectivity/DB.

•محیط هاى متصل

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


روش فوق داراى مزایاى زیر است:
•یک محیط ایمن که پشتیبانى آن ساده تر خواهد بود.
•کنترل همزمانى به سادگى انجام خواهد شد.
•داده ها نسبت به سایر روش هاى موجود، بهنگام تر هستند.
اما معایبى نیز این روش دارد از جمله آنکه:
•مى بایست یک اتصال پیوسته با شبکه وجود داشته باشد.
•توسعه سیستم، داراى چالش هاى خاص خود است.

•محیط هاى غیرمتصل

همزمان با پیدایش اینترنت، سناریوى عملیات غیرمتصل به امرى عادى تبدیل شده است. به موازات افزایش استفاده از دستگاه هاى 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 مى توانند توسط هر نوع سیستم عامل، میزبان و استفاده گردند.

•مزایاى Tires
مهمترین مزیت افزودن Tire، قابلیت گسترش و توسعه یک برنامه است. هر Tire اضافه، امکان افزودن کاربران بیشتر و ایزوله کردن یک سطح از منطق برنامه را فراهم مى نماید. ایزوله کردن منطق، این امکان را فراهم مى کند که تغییرات لازم در یک برنامه بدون نیاز به اعمال تغییرات در سایر Tire ها، صورت پذیرد. مثلاً در یک برنامه One-tire اعمال تغییر در هر سطح از منطق برنامه، مستلزم ترجمه مجدد برنامه و توزیع آن خواهد بود.

•تکامل مدل هاى دستیابى
مدل هاى متفاوت دستیابى به داده به مرور زمان دچار تحول شده است.
• One _Tire : مدل فوق، عموماً شامل یک کاربر بوده و تمامى سه لایه در یک کامپیوتر مستقر (لایه بندى) مى شوند. مثلاً یک بانک اطلاعاتى شامل یک کاربر.
مزایا: چون هر چیز در یک محل قرار مى گیرد تمام عناصر به سادگى قابل دستیابى خواهند بود.
معایب: بهنگام سازى برنامه ها مستلزم کدهاى اولیه برنامه بوده و پس از اعمال تغییرات و ترجمه مجدد مى بایست برنامه براى هر یک از کاربران ارسال مجدد گردد. در این مدل قابلیت واقعى براى گسترش وجود ندارد.
•Two-Tire : لایه User و Business Logic در یک Tire قرار گرفته و Data Service در لایه دوم قرار خواهد گرفت. مدل فوق عموماً شامل دو و یا بیش از دو کامپیوتر است. مثلاً یک بانک اطلاعاتى که Businesses Logic بین دو Tire تقسیم مى شود. بخشى از منطق در برنامه سرویس گیرنده و بخشى دیگر به عنوان Stored procedure در Data Tire ذخیره مى شود.
مزایا: برخى از جداسازى ها را ارائه مى نماید.
معایب: توسعه مشکل خواهد بود، چراکه سرویس گیرندگان به صورت یک Fat Client مطرح و شامل لایه هاى Presentation و Business Logic هستند. توزیع و پشتیبانى نرم افزار یکى دیگر از مشکلات موجود در این مدل است.
•: Three-Tire هر سرویس در یک لایه مجزا قرار مى گیرد. Bussiness Logic در یک Middle Tire جدید مستقر مى شود.
مزایا: نوع مطلوبى از جداسازى را ایجاد نموده و حجم سرویس گیرنده نازک (لاغر!) مى شود. در این مدل سرویس گیرنده به صورت thin client بوده که صرفاً شامل منطق و یا لایه Presentation است.
معایب: مدیریت آن به مراتب پیچیده تر بوده و از لحاظ امنیتى انعطاف و توسعه پذیرى مدل Tire – N را ندارد.

• Tire- N : یک بانک اطلاعاتى گسترده که داراى سرویس گیرندگان متعدد از طریق یک سرویس دهنده برنامه است. Tire جدید مى توانند با توجه به ضرورت هاى منطقى مورد نیاز، اضافه گردند.
مزایا: امکان اجراى برنامه هاى متعدد بر روى سیستم هاى عامل گوناگون به منظور ارتباط با کاربر و داده فراهم مى شود.
معایب: مسائل مربوط به امنیت داراى چالش هاى خاص خود است.( RPC(Remote Procedure Call نمى تواند از طریق فایروال ها، عبور داده شوند.
• Tire with web Interface – N : سرویس ها بین اینترنت و اینترانت از طریق Tire اضافه سرویس دهندگان اختصاصى اضافه در شبکه، توزیع مى شود.
مزایا: هزینه به کارگیرى نرم افزار بر روى سرویس گیرنده به سمت صفر میل مى کند. بهنگام سازى صرفاً بر روى سرویس دهندگان WEB و Application انجام خواهد شد. پروتکل HTTP امکان عبور از طریق فایروال را خواهد داشت.
معایب: داراى چالش هاى امنیتى خاص خود است.
لازم است به این نکته اشاره گردد که با افزایش Tire ها، از یک طرف امکان گسترش برنامه بیشتر شده و از طرف دیگر پیچیدگى مدل دستیابى به داده ها، افزایش مى یابد.

منبع : http://www.srco.ir

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

اجرا شده توسط: همیار وردپرس