1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

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

شروع موضوع توسط minaaa ‏26/1/11 در انجمن برنامه نویسی

  1. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    [​IMG]
    داده ها (Data) در برنامه هاى كامپیوترى داراى نقشى بسیار مهم بوده و همواره نحوه ذخیره و بازیابى آنان از مهمترین مباحث در دنیاى گسترده نرم افزار بوده و خواهد بود. هدف از ذخیره سازى داده ها، بازیابى آنان در زمان مناسب و با سرعت مطلوب است. روش هاى ذخیره سازى داده ها در بستر زمان، دچار تغییر و تحولات گسترده اى شده و با ظهور پدیده اینترنت و ضرورت طراحى و پیاده سازى نرم افزار بر روى بستر فوق، وارد مرحله جدیدى شده است. در این مقاله به بررسى معمارى برنامه هاى كامپیوترى با محوریت داده پرداخته و گزینه هاى ذخیره سازى داده ها بررسى مى شود .

    ذخیره سازى داده
    ذخیره سازى داده ها روشى به منظور ذخیره اقلام متفاوتى از اطلاعات در كنار یكدیگر با هدف تشكیل یك واحد اطلاعاتى منسجم و یكپارچه است. اقلام اطلاعاتى منفرد، به تنهایى كمتر مورد استفاده قرار مى گیرند. اطلاعات مورد نظر زمانى به عنوان منابع اطلاعاتى با ارزش مطرح خواهند بود كه ما قادر به ذخیره سازى آنان در ساختارى مناسب و همراه با سایر اقلام اطلاعاتى باشیم.براى ذخیره سازى داده ها از روش هاى متعددى استفاده مى شود كه ساده ترین آنها روش غیرساخت یافته است. در این روش، داده ها داراى هیچ گونه ساختارى نیستند (نظیر Memo هاى ساده). اما در روش ساخت یافته - غیررابطه اى داده ها به صورت واحدهــاى مجـــزا قرار مى گیـــرند. سازمــــاندهى واحدهـــا عموماً با توجه به اولویت استقرار آنهــا تعیین مى شود. فایل هاى (CSV) Comma Separated valueو یا فایل هایى كه محتویات آنان توسط Tab از یكدیگر جدا مى شوند، فایل هــاى صفحـــات گسترده نظیر Excel ، فایل هاى سرویس دهنده Exchange ، فایل هاى Active Directory ، فایل هاى Indexed 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 نیز نامیده شده و شامل بخش رابط كاربر است .

    Business 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 : هر سرویس در یك لایه مجزا قرار مى گیرد. Business 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 ها، از یك طرف امكان گسترش برنامه بیشتر شده و از طرف دیگر پیچیدگى مدل دستیابى به داده ها، افزایش مى یابد .