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