شنبه, ۱۵ اردیبهشت, ۱۴۰۳ / 4 May, 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 می توانند توسط هر نوع سیستم عامل، میزبان و استفاده گردند .
● مزایای Tires
مهمترین مزیت افزودن Tire ، قابلیت گسترش و توسعه یک برنامه است . هر Tire اضافه، امکان افزودن کاربران بیشتر و ایزوله نمودن یک سطح از منطق برنامه را فراهم می نماید . ایزوله نمودن منطق، این امکان را فراهم می نماید که تغییرات لازم در یک برنامه بدون نیاز به اعمال تغییرات در سایر Tier ها ، صورت پذیرد. مثلا" در یک برنامه 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 است.
ـ معایب : مدیریت آن بمراتب پیچیده تر بوده و از لحاظ امنیتی انعطاف و توسعه پذیری مدل N - Tier را ندارد .
▪N - Tire
یک بانک اطلاعاتی گسترده که دارای سرویس گیرندگان متعدد از طریق یک سرویس دهنده برنامه می باشد . Tier های جدید می تواند با توجه به ضرورت های منطقی مورد نیاز، اضافه گردد .
ـ مزایا : امکان اجرای برنامه های متعدد بر روی سیستم های عامل گوناگون بمنظور ارتباط با کاربر و داده فراهم می گردد .
ـ معایب : مسایل مربوط به امنیت دارای چالش های خاص خود است . RPC)Remote Procedure Call) نمی تواند از طریق فایروال ها ،عبور داده شوند .
▪ N-Tire with web Interface
سرویس ها بین اینترنت و اینترانت از طریق Tier اضافه سرویس دهندگان اختصاصی اضافه در شبکه، توزیع می گردد .
ـ مزایا : هزینه بکارگیری نرم افزار بر روی سرویس گیرنده بسمت صفر میل می کند . بهنگام سازی صرفا" بر روی سرویس دهندگان WEB و Application انجام خواهد شد . پروتکل HTTP امکان عبور از طریق فایروال را خواهند داشت .
ـ معایب : دارای چالش های امنیتی خاص خود است .
در پایان لازم است به این نکته اشاره گردد که با افزایش Tier ها ، از یکطرف امکان گسترش برنامه بیشتر شده و از طرف دیگر، پیچیدگی مدل دستیابی به داده ها ، افزایش می یابد.
منبع : شرکت سخاروش