پایاننامه جهت دریافت درجه کارشناسی ارشد <>
گرایش: نرمافزار
تحملپذیری در مقابل خطا برای سیستم های اطلاعاتی امروزه یکی از ویژگیهای بارز و بااهمیت میباشد.در میان روشهای مختلف ارتقا تحملپذیری خطا، شیوه نرمافزاری نسبت به دیگر روشها از پیچپیدگی بیشتری برخوردار میباشد.در اینجا با توجه به اینکه سیستم هدف ما سیستمهای هوشمند کسبوکار میباشند که در تصمیمگیری و تصمیم سازی محیط کسبوکار نقش بسزایی داشته و بعنوان یک سیستم استراتژیک اهمیت ارتقاء تحملپذیری خطای آن بیشتر میشود.
در این تحقیق یک روش جدید نرمافزاری برای شناسایی وقوع خطا در سیستم های هوشمند کسبوکار در مرحله انتقال اطلاعات از منابع اطلاعاتی به سیستم مقصد و ساخت انبار داده با استفاده از شاخصهای عملکردی کسبوکار ارائه نمودهایم .این روش در جاهایی که با استفاده ازتکنیک افزونگی نسبت به ارتقاء تحملپذیری خطای سیستم اقدام نمودهاند برای شناسایی خطای رخ داده و همچنین انتخاب ماژول سالم، قابلاستفاده است.از مزایای این روش انعطافپذیری بالای آن جهت استفاده در بخشهای مختلف سیستم ،شناسایی عمومی خطاهای رخ داده در طول فرایند انتقال ،قابلیت توسعه آن بدون هزینه اضافی و همچنین قابلیت استفاده این روش در هر سیستمی که نیاز به انتقال اطلاعات از یک محیط به محیط دیگر دارندمیباشد.
این روش بر پایه متدولوژی تشخیص بر اساس مقایسه بنا شده است و هدفش شناسایی سریع خطا با مقایسه دادههای انتقالیافته و دادههای منابع در چارچوب شاخصهای عملکردی محیط کسبوکار میباشد.
با توجه به اینکه این روش یک راهکار نرمافزاری میباشد هزینه آن از روشهای سختافزاری مشابه پایین تر میباشد .
کلمات کلیدی:
سیستم های هوشمند کسبوکار،واکشی انتقال و بار گزاری،تحملپذیری خطا،افزونگی ،شاخصهای عملکردی،انبار داده
داده یکی از باارزشترین سرمایههای هر سازمان است. سیستم های هوشمند کسبوکار[1] این امکان را فراهم میکنند تا با استفاده ازدادهها و ابزارهایی، ارزش واقعی این دادهها را با تبدیل داده به اطلاعات و سپس به دانش انجام گیرد. مکانیزم سیستمهای هوشمند کسبوکار به اینصورت میباشد که دادههای موجود در بخشهای مختلف سازمان با فرمتهای گوناگون طی یک فرایند بازیابی ،انتقال ،پاکسازی و بارکردن[2] به انبار داده[3] انتقال داده و با استفاده از ابزارهای تحلیلی ،گزارشهای مناسب در اختیار کاربران قرار خواهد داد.فرایند ETL تقریبا 70 درصد کل فرایند پیادهسازی سیستم هوشمند کسبوکار را شامل میشودو میتوان گفت صحت کارکرد کل سیستم تا حد زیادی به صحت بخش ETL وابسته است.سیستم های هوشمند کسبوکار از شاخص های عملکردی[4] برای ارزیابی وضعیت کمی و کیفی بخشهای مختلف سازمان استفاده میکنند در واقع سیستمهای هوشمند کسبوکار با استفاده از این شاخصها وضعیت کلی سازمان را مانیتور و کنترل میکند.
کارهای گذشته که در مورد سیستمهای هوشمند کسبوکار در زمینه ارتقاء قابلیت اطمینان [5]هوشمند کسبوکار و تحملپذیری در مقابل خطا[6] ارائه شده است محدود به استفاده از تکنیک افزونگی است بدون اینکه اشارهای به روش شناسایی خطا داشته باشند . در این تحقیق ما سعی خواهیم نمود با نگاهی به معماریهای استاندارد و معمول سیستمهای هوشمند کسبوکار ،جهت افزایش قابلیت اطمینان و تحملپذیری در مقابل خطا یک مکانیزم جدید برای تشخیص وقوع خطا مبتنی بر استفاده از شاخصهای عملکردی پیشنهاد کنیم.در اینجا یک روش عمومی نرمافزاری متمرکز برای کنترل صحت انتقال اطلاعات در مراحل مختلف انتقال از سیستمهای اطلاعاتی به سیستمهای هوشمند کسبوکار ارائه مینماید که با ترکیب با تکنیکهای افزونگی برای افزایش قابلیت اطمینان سیستمها بسیار کارامد میباشد و از مزایایی همچون قابلیت انعطاف برای اعمال تغییرات و توسعه ،شناسایی دقیق محل وقوع خطا،قابلیت استفاده عمومی در هرگونه پروژه ایی که نیاز به انتقال اطلاعات از یک محیط به محیط دیگری دارند قابلاستفاده میباشد.
طرح مساله
سیستم های تصمیم گیر و تصمیم ساز نقشی استراتژیک در موفقیت یک کسبوکار دارند لذا صحت اطلاعات و در دسترس بودن آنها از اهمیت بسیاری برخوردار میباشد.عموما برای بالا بردن قابلیت اعتماد اینگونه از سیستمها از راهکارهای افزونگی سخت افزای که پیادهسازی آنها نسبت به راهحلهای نرمافزاری راحت تر و از پیچیدگی کمتری برخوردار است استفاده میشود ولی یک از ضعفهای عمومی اینگونه راه حلها عدم اطمینان صدرصدی درستی آنها میباشد بخصوص برای این بحث خاص یعنی انتقال دادهها از یک محیط به محیط دیگر. بعنوان مثال برای روشن تر شدن موضوع میتوان به انتقال تعدادی رکورد از منبع به یک مقصد اشاره کرد که در راهکارهای سختافزاری بروی انجام عملیات انتقال مترکز میباشد و بروی ماهیت دادهها و مقادیر آنها هیچگونه درکی ندارد یعنی اگر در طول فرایند انتقال مقداری از یک رکورد تغییر کند سیستم متوجه نخواهد شد در صورتی که در روش نرمافزاری پیشنهادی با مقایسه مقادیر انتقالی متوجه هر گونه تغییر و خطای خواهد شد.
هدف تحقیق
هدف ما در این تحقیق ارائه یک راهکار نرم افرازی میباشد که قابلیت اجرایی در هر کسبوکاری که نیاز به انتقال اطلاعات از یک محیط به محیط دیگر نیاز دارد قابلاستفاده میباشد ما در این روش از نگاشت جداول محیط منبع و جداول مقصد و همچنین بر اساس متدولوژی تشخیص بر اساس مقایسه استفاده کردهایم.با توجه به اینکه انتقال اطلاعات در کسبوکارهایی انجام میشود که در آنها سیستمهای اطلاعاتی قبلا استقرار داشتهاند میتوان از نگاشتها و همچنین شاخصهای عملکردی استفاده نمود.
محدوده تحقیق
در این تحقیق تشخیص خطا و افزایش قابلیت اطمینان سیستم را محدود به راهحلهای افزونگی محدود نمودهایم و به صورت دو دسته عمومی سختافزاری و نرمافزاری تقسیمبندی کردهایم و از جنبه محیط اجرایی این تحقیق قابلیت استفاده در هر محیطی که نیاز به انتقال اطلاعات از یک محیط ترجیحا رابطهای به محیط مقصدی با ساختاری رابطهای دارد .همچنین فرض شده است که محیط کسبوکار انتخابی دارای سیستمهای اطلاعاتی عملیاتی بوده و شاخصهای عملکردی سازمان مطبوع تعریف شدهاند.
ساختار پایاننامه
ساختار این پایاننامه به این شکل است که در فصل دوم ما مقدمهای در مورد سیستمهای هوشمند کسبوکار، تعاریف اولیهای از انبار داده و معماری آن،فرایند ETL و جریان دادهای آن همچنین جنبه های مختلف یک سیستم هوشمند کسبوکار همچون گزارشهای تحلیلی مدیریتی[7] وداده کاوی[8] و گزارشهای داشبوردی [9]خواهیم داشت و در فصل سوم مقدمهای بر سیستمهای مطمئن و اتکاپذیری و قابلیت اعتماد[10] سیستم و خصوصیات و شاخصهای قابلیت اطمینان سیستم که شامل قابلیت دسترسی ،ایمنی و... را به همراه انواع راهحلهای افزونگی نرمافزاری و سختافزاری با تمرکز بر جنبه نرمافزاری آن برای افزایش قابلیت اطمینان سیستم بیان خواهیم داشت و در ادامه اشارهای کوتاه به شاخصهای عملکردی سازمان و روشهای ارزیابی عملکرد سیستم داریم و در نهایت در فصل چهارم روش پیشنهادی و در فصل پنجم نتیجهگیری را خواهیم داشت.
فصل دوم: مروری بر سیستم های کسب و کار هوشمند
طی مدتهای طولانی سیستم های اطلاعاتی[11] وظیفه پشتیبانی اطلاعاتی سازمانها را بعهده داشتند. گذر زمان نقطه ضعفهایی از قبیل،عدم امکان کمک به تصمیمگیری در شرایط بحرانی ،عدم امکان فراهم نمودن شرایطی برای پیشبینی آینده کسبوکار ،نداشتن گزارشهای چندبعدی تحلیلی و استنتاج اطلاعات خاص و دانش از دادههای سیستم را برای اینگونه سیستمها نمایان نمود.
برای جبران این نواقص سیستمهای هوشمند کسبوکار[12] پیشنهاد گردیدند.که از مهمترین کارهای که اینگونه سیستمها با استفاده از دادههای بخشهای مختلف سازمان و برخی دادههای بیرونی مرتبط میتواند انجام دهند میتوان به، پیشبینی هوشمندانه محیط کسبوکار ، پیشبینی و تحلیل عمیق بازار،مدیریت مناسب ارتباط با مشتری ، ارائه گزارشهای تحلیلی و جامع با استفاده یکپارچگی دادههای جمعآوری شده از بخشهای مختلف سازمان و در نهایت تسهیل در تصمیمگیری اشاره کرد شکل ذیل توسعه و تکامل سیستم های اطلاعاتی را نمایش میدهد.
البته لازم به توضیح میباشد که اثربخش بودن سیستمهای هوشمند کسبوکار مستلزم فراهم آوردن محیط و شرایط مناسب در سازمان میباشد از جمله این شرایط غالب نمودن فرهنگ تصمیمگیری بر اساس دادهها ودانش اطلاعاتی ناشی از این سیستم،آموزش روش مدیریتی مبتنی بر تحلیل به مدیران تصمیم گیر و تصمیم ساز بجای دیدگاه سنتی صرفا تولید میباشد،
سیستمهای هوشمند کسبوکار
سیستمهای هوشمند کسبوکار فرایندی است که با ذخیره ومهیا کردن دادههای موجود سازمان مانند خرید،فروش،مالی، و... تحت یک سیستم متمرکز و یکپارچه و با استفاده از ابزارهای خاص[13] امکان تحلیل و آنالیز فرایندهای سازمانی راجهت بهبود در تصمیمگیری فراهم مینماید.در واقع هدف اصلی سیستمهای هوشمند کسبوکار مهیا نمودن اطلاعات صحیح برای تصمیم سازی درست در زمان مناسب میباشد.فرایند عمومی سیستمهای هوشمند کسبوکار مبتنی بر تبدیل دادههای سازمانی بر اطلاعات و دانش سازمانی در شکل شماره (2) نمایش داده شده است.
معماری سیستمهای هوشمند کسبوکار با واکشی و جمعآوری همه دادههای سازمانی اهم از ساختار یافته مانند سیستمهای اطلاعاتی و غیرساختاریافته مانند فایلهای دادهای ،نقشه و... شروعشده و پس از پاکسازی به پایگاه داده انبار داده[14] بار گزاری میگردد،سپس با استفاده از ابزارهای تحلیلی ، توسط کاربران خبره ، گزارشات تحلیلی وپیشبینی های کاری در اختیار افراد تصمیم گیر برای تصمیم سازی قرارمیگیرد.
از مهمترین اجزای هوشمند کسبوکار میتوان به انبار داده ، [15]ETL،[16]OLAP، داده کاوی[17] وابزارهای گزارشی و نمایشی مانندگزارشات وداشبوردهای مدیریتی اشاره نمود.
انبار داده
انبارداده یک سیستم بازیابی ویکپارچه سازی دادههای مختلف است که بصورت پریودیک با توجه به ماهیت کسبوکار و محدودیتهای فنی، بروزمیشود ودارای ساختاری، ارتباطی با افزونگی کنترل شده و چندبعدی است،که در نهایت بصورت یک پایگاه دادهای ، دادههایی را جهت سیستم هوشمند کسبوکار و یا هر سیستم تحلیلی دیگر فراهم میکند.
به بیان دیگر یک انبار داده سیستمی است که دادههایی را از منابع مختلف بصورت متناوب بصورت یکپارچه و متمرکزدر پایگاه دادههای چندبعدی یا نرمال شده بازیابی میکند. ماهیت انبار داده باعث میشود که آن بصورت فقط خواندنی در اختیار کاربران قرار گیرد و بروز رسانی دادههای آن بصورت دسته ای[18] و در قالب مکانیزمهای ETL میباشد نه مانند سیستمهای عملیاتی [19] که به ازای هر تراکنشی ممکن است منجر به بروزرسانی گردند . دلیلی که باعث اعمال این کنترل میباشد جهت حفظ سازگاری دادههای موجود در انبار داده و دادههای سیستمهای عملیاتی میباشد.
تفاوت دیگر آن با پایگاه دادههای سیستمهای اطلاعاتی، نگهداری درازمدت اطلاعات [20] میباشد.
تعریف Bill Inmon از انبار داده: یک انبار داده مجموعه از دادههای غیر فرار،یکپارچه ونرمال برای پشتیبانی از تصمیمات مدیریت میباشند.
تعریف Kimball: یک انبار داده سیستمی است که دادهها را از منابع استخراج،پاکسازی و در قالب پایگاه دادهای چندبعدی[21] شکل دهی میکند سپس با اجرای تحلیل ها و پرس و جوهایی از تصمیمات سازمانی حمایت میکند.
انبار داده دارای دو نوع معماری میباشد.1-معماری جریان داده[22] و2-معماری سیستم .
معماری جریان داده مشخص میکند دادههای ذخیره شده در پایگاه داده از منابع اطلاعاتی چه مسیر و گامهایی را باید طی نماید تا در نهایت در اختیار کاربر قرار گیردو معماری سیستم در مورد پیکربندی سختافزاری سرورها،شبکه،ماشین ها و... میباشد.
معماری جریان داده
در یک انبار داده ،معماری جریان داده یک پیکربندی پایگاه دادههای یک سیستم انبار داده است که چینش و ترتیب چگونگی جریان داده از منابع اطلاعاتی را به این پایگاه های دادهای و سپس برنامه های کاربردی سطح کاربر نشان میدهد.که این معماری شامل چگونگی کنترل،مانیتورینگ وثبت وقایع در طی فرایند میباشد.معماری های موجود برای جریان داده به چهار دسته تقسیم میشوند:DDS,[23]NDS+DDS,[24]ODS+DDS و در نهایت Federated.
باید در نظر داشت معماری جریان داده کاملا با معماری داده و مدلینگ دادهای متفاوت میباشد.
مهمترین بخش در معماری جریان داده ،منابع دادهای [25]میباشند.یک منبع دادهای یک یا مجموعه ای از پایگاه دادهای میباشد که شامل دادههای انبار داده بود و دارای فرمت خاص خود میباشد.
بر اساس نوع دسترسی کاربران به دادههای انبار داده ،منابع دادهای را به چند دسته میتوان تقسیم کرد:
1-منبع دادهای کاربر[26]: که در دسترس کاربران نهایی بوده و کاربران نهایی قادر بر اجرای پرس و جو بر روی آنها میباشند.
2-منبع دادهای داخلی[27]: که توسط مولفه های داخلی انبار داده بمنظور ایجاد یکپارچگی،پاک سازی و... استفاده شده و در اختیار کاربران نهایی نمی باشد.
3-منبع داده ی ترکیبی[28]: که هم ممکن است توسط مولفه های داخلی استفاده گردند و هم توسط کاربران نهایی مورد پرس و جو قرار گیرند.
همچنین بر اساس فرمت وساختار دادهای ،منابع دادهای به چهاردسته تقسیم میشوند:
1-Stage :یک منبع دادهای داخلی است که جهت انتقال دادهها از منابع اطلاعاتی بیرونی به آن استفاده میگردد.
2-منبع دادهای نرمال شده (NDS) یک منبع اصلی دادهای است که شامل مجموعه ای از پایگاه دادهای رابطهای نرمال سازی شده میباشد که بمقصود یکپارچگی دادههای انتقالی از Stage استفاده میگردد.
3-منبع دادهای عملیاتی(ODS) یک منبع دادهای ترکیبی میباشد که شامل مجموعه ای از پایگاه دادههای رابطهای نرمال شده میباشد که شامل دادههای عملیاتی و تراکنشها بوده و جهت استفاده در سیستمهای عملیاتی موجود کاربرد دارد.
4-منبع دادهای ابعادی[29](DDS) یک منبع دادهای سطح کاربر میباشد که رابطهای بوده و دادهها با فرمت چندبعدی و جهت پرس و جوهای تحلیلی در آن ذخیره میگردند.
بسیاری از برنامه ها نیازمندند که دادههای خود را بصورت چندبعدی[30] (MDB) داشته باشند .یک پایگاه داده چندبعدی نوعی است که دادههای را در سلولهایی نگهداری میکند که موقعیت هر سلول با تعدادی متغیر که دامنه[31] نام دارند تعریف میگردند.هر سلول یک تراکنش را نشان میدهد. البته باید توجه کرد که معماریهای جریان دادهای فوق برای مثال میباشند و در اجرا ممکن است در هنگام ساخت یک انبار داده متناسب با نیاز کسبوکار و همچنین کیفیت و نیازمندیهای دادهای معماری جریان داده خاص خود را بطلبد.شکل ذیل یک معماری عمومی جریان داده را نشان میدهد.
در معماری فوق وجود چندیدن نوع ETL قابل توجه میباشد که وظیفه هرکدام انتقال دادهها از یک مرحله به مرحله بعد میباشد.
معماری سیستم [32]
زمانیکه شما معماری جریان داده را انتخاب نمودید شما نیاز به طراحی معماری سیستم که بصورت فیزیکی چینش و ارتباط بین سرورها،شبکه ،نرم افزارها ،سیستمهای ذخیره و ایستگاههای کاری خواهید داشت.طراحی معماری سیستم مستلزم داشتن دانش در مورد سخت افزار،شبکه،سیستمهای ذخیره و ... دارد.شکل ذیل یک نمونه از معماری سیستم را نمایش میدهد.
(تصاویر در فایل اصلی موجود است)
Abstract
In this article, a new method for error detection in Business Intelligence systems during the ETL (Extraction, Transformation and Loading) stage is proposed by using Performance Indexes, so that in conditions where redundancy technique is utilized for upgrading system fault tolerance, a suitable module can be selected. Some advantages of this method are higher flexibility for usage in different parts of the system, general detection of errors along the ETL chain, development capabilities without added cost, and usage in systems requiring data transfer from one environment to another.
This model is a Comparison-Based Diagnosis methodology and the purpose is detecting errors quickly using existing data sources and transferred data.As this is a software solution, the cost of project is lower than the hardware method. Also, the implementation is much easier.
Keywords: Business Intelligence, ETL (Extraction-Transformation-Loading), Comparator, Performance Indicator, Fault Tolerance