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

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

ذخيره سازی داده

ذخيره سازی داده ها ، روشی بمنظور ذخيره اقلام متفاوتی از اطلاعات در کنار يکديگر با هدف تشکيل يک واحد اطلاعاتی منسجم و يکپارچه است. اقلام اطلاعاتی منفرد،به تنهائی کمتر مورد استفاده قرار می گيرند. اطلاعات مورد نظر زمانی بعنوان منابع اطلاعاتی با ارزش مطرح خواهند بود که ما قادر به ذخيره سازی آنان درساختاری مناسب و همراه با ساير اقلام اطلاعاتی باشيم .
برای ذخيره سازی داده ها از روش های متعددی استفاده می گردد :
• غير ساختيافته . در اين روش، داده ها دارای هيچگونه ساختاری نمی باشند ( نظير 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 ها ، از يکطرف امکان گسترش برنامه بيشتر شده و از طرف ديگر، پيچيدگی مدل دستيابی به داده ها ، افزايش می يابد.