بررسی الگوهای طراحی Singleton و Chain of ResponsibilitySoroush Salehi
مراجع:
[1] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley
[2] Steve Holzner Ph.D., Design Patterns For Dummies, Design Patterns For Dummies
[3] https://sourcemaking.com/design_patterns
[4] http://www.oodesign.com
[5] http://www.blackwasp.co.uk/DesignPatternsArticles.aspx
This document introduces software rejuvenation techniques for complex systems. It discusses how software aging can degrade system performance over time due to resource exhaustion and error accumulation. Software rejuvenation proactively reboots systems to clear internal states and prevent failures. The document compares different rejuvenation policies and techniques, such as time-based approaches and approaches using workload monitoring. It also examines how rejuvenation affects virtual machines and discusses methods like cold restarts, warm suspends, and live migration. The goal of this project is to optimize rejuvenation times based on varying workloads to reduce downtime and improve system availability for complex environments.
بیان مزیت ها و توانایی های الاستیک سرچ به همراه توضیح نحوه استفاده از بخش های مختلف و راه اندازی آن شامل آپاچی کافکا و کیبانا و لاگ استش و الاستیک سرچ در مجموعه گارتکس
بررسی الگوهای طراحی Singleton و Chain of ResponsibilitySoroush Salehi
مراجع:
[1] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley
[2] Steve Holzner Ph.D., Design Patterns For Dummies, Design Patterns For Dummies
[3] https://sourcemaking.com/design_patterns
[4] http://www.oodesign.com
[5] http://www.blackwasp.co.uk/DesignPatternsArticles.aspx
This document introduces software rejuvenation techniques for complex systems. It discusses how software aging can degrade system performance over time due to resource exhaustion and error accumulation. Software rejuvenation proactively reboots systems to clear internal states and prevent failures. The document compares different rejuvenation policies and techniques, such as time-based approaches and approaches using workload monitoring. It also examines how rejuvenation affects virtual machines and discusses methods like cold restarts, warm suspends, and live migration. The goal of this project is to optimize rejuvenation times based on varying workloads to reduce downtime and improve system availability for complex environments.
بیان مزیت ها و توانایی های الاستیک سرچ به همراه توضیح نحوه استفاده از بخش های مختلف و راه اندازی آن شامل آپاچی کافکا و کیبانا و لاگ استش و الاستیک سرچ در مجموعه گارتکس
Big Data Processing in Cloud Computing EnvironmentsFarzad Nozarian
This is my Seminar presentation, adopted from a paper with the same name (Big Data Processing in Cloud Computing Environments), and it is about various issues of Big Data, from its definitions and applications to processing it in cloud computing environments. It also addresses the Big Data technologies and focuses on MapReduce and Hadoop.
نرم افزارها محصول هایی هستند که توان محاسباتی بالقوه سخت افزارها را بصورت بالفعل تبدیل میکنند.
نرم افزار وسیله ای برای ایجاد یک محصول است.
نرم افزار سیستم عامل، کنترل یک کامپیوتر را بر عهده دارد.
نرم افزار شبکه، برای برقراری و مدیریت ارتباط ها در شبکه ها
نرم افزارهای برنامه نویسی، برای ساخت برنامه های کاربردی
قابلیت اطمینان برای تبادلات داده ای تضمین شده روی شبکه در شرایط اضطراری یک ضرورت است.قابلیت اطمینان هنگام تحقق نیازمندیهای امنیتی و حصول سطح مطلوب در دسترس بودن سامانه یک منفعت مضاعف است.قابلیت اطمینان برای کسب رضایت مشتری و تحقق منفعت بالقوه یک پیش شرط است.
قابلیت اطمینان کیفیتی عملیاتی - اجرایی است.تعریف قابلیت اطمینان : احتمال عملکرد بدون نقصان و شکست یک قطعه نرم افزار طی یکدورۀ زمانی معین و در یک شرایط محیطی معین را قابلیت اطمینان آن نرم افزار میگویند .قابلیت اطمینان یک مؤلفه به توانمندیهای درونی آن وابسته است.قابلیت اطمینان یک سامانۀ نرم افزاری به مؤلفه های خاص ارتباطات بین مؤلفه ها و محیط اجرایی وابسته است.
ارزیابی قابلیت اطمینان به دو روش انجام میشود شبیه سازی تحلیلی روشهای مبتنی بر مشاهدات شبیه سازی معمولا به فعالیتهایی مانند تخمین و پیش بینی منجر میشود.مشاهدات نیز معمولا به آزمون و اندازه گیری ختم میگردد.
طراحی روشی یکپارچه برای ارزیابی قابلیت اطمینان ضروری است. هدف این مقاله ارائۀ چنین روشی است.نشان میدهیم چگونه روشهای موجود در قالب یک چرخۀ طراحی منسجم یکپارچه میگردند.این روش یکپارچه را زنجیره ای از ابزارها حمایت خواهند کرد.در این روش تمامی فعالیتهای مرتبط با ارزیابی قابلیت نرم افزار در سطح مؤلفه ها و در سطح سیستم تجمیع میشوند.
در این مقاله ارزیابی قابلیت اطمینان به عنوان بخشی از فرایند ارزیابی کیفیت نرم افزار مورد بحث قرار گرفت. از آنجا که قابلیت اطمینان مؤلفه و قابلیت اطمینان سامانۀ نهایی متقابلاً بر یکدیگر مؤثر هستند. بنابراین نیازمند روشی یکپارچه هستیم تا به تصمیم گیری در مرحلۀ طراحی و انتخاب صحیح و درست مؤلفه کمک نماید.
در این مقاله به شرح روشی پرداخته شده است که با استفاده از تخمین ، پیشبینی و اندازه گیری مبتنی بر مدل قابلیت اطمینان مؤلفه ها و تجمیع آن با پیش بینی قابلیت اعتماد کل سامانه به تولید کننده در روشهای تکراری – افزایشی یاری میرساند.
با کمک این روش میتوان قابلیت اطمینان مؤلفه هایی که هنوز پیاده سازی نشده اند را تخمین زد ، عدد قابلیت اطمینان مؤلفه ها را اندازه گرفت و چگونگی تأثیر انتخاب مؤلفه های متفاوت در مرحلۀ طراحی بر عدد قابلیت اطمینان را ارزیابی کرد.
سيستم جامع مديريت توليد MTS در برگيرنده فعاليتهاي اصلي زنجيره توليد محصول و مديريت كارخانه بوده و در ارتباط با زير سيستمهاي حوزه مالي و بازرگاني به عنوان يك راه حل جامع سازماني مي تواند به عنوان ابزاري قدرتمند در خدمت صنايع توليدي قرار گيرد
اين سيستم شامل زير سيستمها و ماژول هاي ذيل مي باشد :
1. مهندسي ساخت يا محصول (تكنولوژي ساخت ) (Manufacturing Engineering)
2. برنامه ريزي و كنترل توليد (Production Planning & Control)
3. ورود اطلاعات وقايع حين توليد بصورت كاملا مكانيزه و با استفاده از دستگاههاي باركد خوان صورت مي پذيرد
4. برنامه ريزي و كنترل تعهدات (Commitment Planning & Control)
5. برنامه ريزي نيازمندي مواد (Material Requirement Planning - MRP)
6. ظرفيت سنجي منابع توليد (Rough Cut Capacity Planning - RCCP)
7. مديريت موارد عدم تطابق (Non Conformity Management)
8. مديريت فروش و گارانتي محصولات (Sale & Guarantee Management)
9. كنترل مصرف مواد و ضايعات (Material Consume Control)
10. مديريت درخواست كار (Work Request Management)
11. برنامه ريزي و كنترل كاليبراسيون (Calibration Planning & Control)
12. كنترل كيفيت و پارامترهاي توليد (QC & Process Criteria)
علاوه به موارد فوق نرم افزار مورد نياز جهت جمع آوري اطلاعات از خط توليد بصورت جداگانه پياده سازي گرديد كه بر روي دستگاه هاي باركد خوان پرتابل نصب بوده و وظيفه جمع آوري ريز وقايع خط توليد را بر عهده دارد.
مهندسی نرم افزار - مهندسی سیستم و تحلیل نیازها - Software Engineering - Syste...Hamzeh Roustaei
This slide is about system engineering and requirements analysis from chapter 3 of Mr.Zanjani software engineering book.
موضوع این اسلاید درباره مهندسی سیستم و تحلیل نیاز هاست که از فصل 3 کتاب مهندسی نرم افزار آقای زنجانی برگرفته شده است.
متعادل کننده بار در پایگاه داده توزیع شدهHadi Rasouli
امروزه با توجه به گسترش تعداد سرویسها و سیستمهای مبتنی بر ابر، استفاده بهینه از منابع موجود و کارایی بالا در ارائه سرویس، یکی از مهمترین مسائل در این نوع سیستمها است. با توجه به موقعیت جغرافیایی سرورها، سیستمهای پایگاه داده توزیعشده بهعنوان یک ضرورت درآمده اند که اجتماعی از پایگاه دادههای متنوع را با درجه شفافیت قابل قبول، در اختیار کاربر قرار میدهند. همچنین با توجه به گسترش روز افزون علم کامپیوتر و وجود نرمافزارهای متعدد در زمینه ساخت پایگاهداده، امکانات بسیاری را در زمینه جمعآوری اطلاعات در اختیار کاربران قرار میدهند که این امر موجب شده تا روز به روز به حجم و تداد پایگاه دادهها افزوده شود. بنابراین با توجه به افزایش و گسترش تعداد پایگاه دادهها بحت کنترل همروندی پیش میآید که راهحلهایی برای آن باید در نظر گرفته شود. یکی از راهحلها استفاده از پایگاهدادههای توزیعشده است. پیشرفت در تکنولوژی شبکه و پایگاه داده در دهههای اخیر موجب ایجاد سیستمهای پایگاهدادههای توزیعشده شده است. یک سیستم پایگاهداده توزیعشده مجموعهای از سایتها هست که از طریق شبکه به هم متصل شدهاند که هرکدام از سایتها پایگاهداده مخصوص به خود را دارد و میتوانند با یکدیگر کار کنند و ارتباط داشته باشند. بنابراین یک کاربر میتواند به اطلاعات همه پایگاه دادههای متصل دسترسی پیدا کند بهطوری که متوجه توزیعشدگی پایگاه دادهها نشود. در این گزارش به معرفی و مقایسه روشهای متعادلکننده بار یا توازن بار در پایگاهدادههای توزیعشده پرداخته شده است.
Big Data Processing in Cloud Computing EnvironmentsFarzad Nozarian
This is my Seminar presentation, adopted from a paper with the same name (Big Data Processing in Cloud Computing Environments), and it is about various issues of Big Data, from its definitions and applications to processing it in cloud computing environments. It also addresses the Big Data technologies and focuses on MapReduce and Hadoop.
نرم افزارها محصول هایی هستند که توان محاسباتی بالقوه سخت افزارها را بصورت بالفعل تبدیل میکنند.
نرم افزار وسیله ای برای ایجاد یک محصول است.
نرم افزار سیستم عامل، کنترل یک کامپیوتر را بر عهده دارد.
نرم افزار شبکه، برای برقراری و مدیریت ارتباط ها در شبکه ها
نرم افزارهای برنامه نویسی، برای ساخت برنامه های کاربردی
قابلیت اطمینان برای تبادلات داده ای تضمین شده روی شبکه در شرایط اضطراری یک ضرورت است.قابلیت اطمینان هنگام تحقق نیازمندیهای امنیتی و حصول سطح مطلوب در دسترس بودن سامانه یک منفعت مضاعف است.قابلیت اطمینان برای کسب رضایت مشتری و تحقق منفعت بالقوه یک پیش شرط است.
قابلیت اطمینان کیفیتی عملیاتی - اجرایی است.تعریف قابلیت اطمینان : احتمال عملکرد بدون نقصان و شکست یک قطعه نرم افزار طی یکدورۀ زمانی معین و در یک شرایط محیطی معین را قابلیت اطمینان آن نرم افزار میگویند .قابلیت اطمینان یک مؤلفه به توانمندیهای درونی آن وابسته است.قابلیت اطمینان یک سامانۀ نرم افزاری به مؤلفه های خاص ارتباطات بین مؤلفه ها و محیط اجرایی وابسته است.
ارزیابی قابلیت اطمینان به دو روش انجام میشود شبیه سازی تحلیلی روشهای مبتنی بر مشاهدات شبیه سازی معمولا به فعالیتهایی مانند تخمین و پیش بینی منجر میشود.مشاهدات نیز معمولا به آزمون و اندازه گیری ختم میگردد.
طراحی روشی یکپارچه برای ارزیابی قابلیت اطمینان ضروری است. هدف این مقاله ارائۀ چنین روشی است.نشان میدهیم چگونه روشهای موجود در قالب یک چرخۀ طراحی منسجم یکپارچه میگردند.این روش یکپارچه را زنجیره ای از ابزارها حمایت خواهند کرد.در این روش تمامی فعالیتهای مرتبط با ارزیابی قابلیت نرم افزار در سطح مؤلفه ها و در سطح سیستم تجمیع میشوند.
در این مقاله ارزیابی قابلیت اطمینان به عنوان بخشی از فرایند ارزیابی کیفیت نرم افزار مورد بحث قرار گرفت. از آنجا که قابلیت اطمینان مؤلفه و قابلیت اطمینان سامانۀ نهایی متقابلاً بر یکدیگر مؤثر هستند. بنابراین نیازمند روشی یکپارچه هستیم تا به تصمیم گیری در مرحلۀ طراحی و انتخاب صحیح و درست مؤلفه کمک نماید.
در این مقاله به شرح روشی پرداخته شده است که با استفاده از تخمین ، پیشبینی و اندازه گیری مبتنی بر مدل قابلیت اطمینان مؤلفه ها و تجمیع آن با پیش بینی قابلیت اعتماد کل سامانه به تولید کننده در روشهای تکراری – افزایشی یاری میرساند.
با کمک این روش میتوان قابلیت اطمینان مؤلفه هایی که هنوز پیاده سازی نشده اند را تخمین زد ، عدد قابلیت اطمینان مؤلفه ها را اندازه گرفت و چگونگی تأثیر انتخاب مؤلفه های متفاوت در مرحلۀ طراحی بر عدد قابلیت اطمینان را ارزیابی کرد.
سيستم جامع مديريت توليد MTS در برگيرنده فعاليتهاي اصلي زنجيره توليد محصول و مديريت كارخانه بوده و در ارتباط با زير سيستمهاي حوزه مالي و بازرگاني به عنوان يك راه حل جامع سازماني مي تواند به عنوان ابزاري قدرتمند در خدمت صنايع توليدي قرار گيرد
اين سيستم شامل زير سيستمها و ماژول هاي ذيل مي باشد :
1. مهندسي ساخت يا محصول (تكنولوژي ساخت ) (Manufacturing Engineering)
2. برنامه ريزي و كنترل توليد (Production Planning & Control)
3. ورود اطلاعات وقايع حين توليد بصورت كاملا مكانيزه و با استفاده از دستگاههاي باركد خوان صورت مي پذيرد
4. برنامه ريزي و كنترل تعهدات (Commitment Planning & Control)
5. برنامه ريزي نيازمندي مواد (Material Requirement Planning - MRP)
6. ظرفيت سنجي منابع توليد (Rough Cut Capacity Planning - RCCP)
7. مديريت موارد عدم تطابق (Non Conformity Management)
8. مديريت فروش و گارانتي محصولات (Sale & Guarantee Management)
9. كنترل مصرف مواد و ضايعات (Material Consume Control)
10. مديريت درخواست كار (Work Request Management)
11. برنامه ريزي و كنترل كاليبراسيون (Calibration Planning & Control)
12. كنترل كيفيت و پارامترهاي توليد (QC & Process Criteria)
علاوه به موارد فوق نرم افزار مورد نياز جهت جمع آوري اطلاعات از خط توليد بصورت جداگانه پياده سازي گرديد كه بر روي دستگاه هاي باركد خوان پرتابل نصب بوده و وظيفه جمع آوري ريز وقايع خط توليد را بر عهده دارد.
مهندسی نرم افزار - مهندسی سیستم و تحلیل نیازها - Software Engineering - Syste...Hamzeh Roustaei
This slide is about system engineering and requirements analysis from chapter 3 of Mr.Zanjani software engineering book.
موضوع این اسلاید درباره مهندسی سیستم و تحلیل نیاز هاست که از فصل 3 کتاب مهندسی نرم افزار آقای زنجانی برگرفته شده است.
متعادل کننده بار در پایگاه داده توزیع شدهHadi Rasouli
امروزه با توجه به گسترش تعداد سرویسها و سیستمهای مبتنی بر ابر، استفاده بهینه از منابع موجود و کارایی بالا در ارائه سرویس، یکی از مهمترین مسائل در این نوع سیستمها است. با توجه به موقعیت جغرافیایی سرورها، سیستمهای پایگاه داده توزیعشده بهعنوان یک ضرورت درآمده اند که اجتماعی از پایگاه دادههای متنوع را با درجه شفافیت قابل قبول، در اختیار کاربر قرار میدهند. همچنین با توجه به گسترش روز افزون علم کامپیوتر و وجود نرمافزارهای متعدد در زمینه ساخت پایگاهداده، امکانات بسیاری را در زمینه جمعآوری اطلاعات در اختیار کاربران قرار میدهند که این امر موجب شده تا روز به روز به حجم و تداد پایگاه دادهها افزوده شود. بنابراین با توجه به افزایش و گسترش تعداد پایگاه دادهها بحت کنترل همروندی پیش میآید که راهحلهایی برای آن باید در نظر گرفته شود. یکی از راهحلها استفاده از پایگاهدادههای توزیعشده است. پیشرفت در تکنولوژی شبکه و پایگاه داده در دهههای اخیر موجب ایجاد سیستمهای پایگاهدادههای توزیعشده شده است. یک سیستم پایگاهداده توزیعشده مجموعهای از سایتها هست که از طریق شبکه به هم متصل شدهاند که هرکدام از سایتها پایگاهداده مخصوص به خود را دارد و میتوانند با یکدیگر کار کنند و ارتباط داشته باشند. بنابراین یک کاربر میتواند به اطلاعات همه پایگاه دادههای متصل دسترسی پیدا کند بهطوری که متوجه توزیعشدگی پایگاه دادهها نشود. در این گزارش به معرفی و مقایسه روشهای متعادلکننده بار یا توازن بار در پایگاهدادههای توزیعشده پرداخته شده است.
35. 35 / 37
مراجع
[1] Cotroneo, D., Natella, R., Pietrantuono, R., & Russo, S. , "A survey of software aging
and rejuvenation studies", ACM Journal on Emerging Technologies in Computing Systems
(JETC), 2014
[2] Huang, Y.; Kintala, C.; Kolettis, N.; Fulton, N.D., "Software rejuvenation: analysis,
module and applications", in Fault-Tolerant Computing, 1995. FTCS-25. Digest of Papers.,
Twenty-Fifth International Symposium on , vol., no., pp.381-390, 27-30 June 1995
[3] Garg, S.; van Moorsel, A.; Vaidyanathan, K.; Trivedi, K.S., "A methodology for
detection and estimation of software aging," in Software Reliability Engineering,
1998. Proceedings. The Ninth International Symposium on , vol., no., pp.283-292,
4-7 Nov 1998
[4] Lei Li; Vaidyanathan, K.; Trivedi, K.S., "An approach for estimation of software
aging in a Web server," in Empirical Software Engineering, 2002. Proceedings.
2002 International Symposium n , vol., no., pp.91-100, 2002
افزار نرم پیری مساله تحلیل و بررسی
36. 36 / 37
مراجع
[5] Mohan, B.R.; Ram Mohana Reddy, G., "Software aging trend analysis of server
virtualized system," in Information Networking (ICOIN), 2014 International
Conference on , vol., no., pp.260-263, 10-12 Feb. 2014
[6] Moura Silva, L.; Alonso, J.; Silva, P.; Torres, J.; Andrzejak, A., "Using Virtualization to
Improve Software Rejuvenation," in Network Computing and Applications, 2007. NCA
2007. Sixth IEEE International Symposium on , vol., no., pp.33-44, 12-14 July 2007
[7] Mohan, B.R.; Reddy, G.R.M., "The effect of software aging on power usage," in
Intelligent Systems and Control (ISCO), 2015 IEEE 9th International Conference on , vol.,
no., pp.1-3, 9-10 Jan. 2015
[8] Parnas, D.L., "Software aging," in Software Engineering, 1994. Proceedings. ICSE-16.,
16th International Conference on , vol., no., pp.279-287, 16-21 May 1994
افزار نرم پیری مساله تحلیل و بررسی
برنامه روی سرور ها، سیستم عامل، سیستم های نهفته
حافظه گرفته شود پس داده نشود
دسترسی فرایند ها به فایل های کامپیوتر
چند ریسه = یک فرایند
محدودیت دقت محاسباتی ، اعداد اعشاری
: سیستم امنیتی ارتش تحت تاثیر پر شدن بافر دچار تعلیق (hang) شد.
چالش ها
اشکال : نقص یا عیب موجود در سیستم که منجر به خطا شود = Bug
تجمع خطا ها به وسیله تعداد و نوع عملیات های انجام شده توسط سیستم اثر می پذیرد. که به "حجم کار" اشاره دارد.
فاکتور پیری : اشکال کد،انسانی
از آنجاییکه ممکن است برنامه در حین جوان سازی در دسترس نباشد، جوان سازی می تواند باعث افزایش زمان از کار افتادگی و برخی هزینه ها شود.
تنزل کارایی : اغلب به علت کاهش منابع سیستم
روش ها و تکنیک های کاهش و یا به تاخیر انداختن پدیده پیری نرم افزار
ریست کردن بخشی از برنامه : کاهش زمان جوان سازی
= سیستم هایی با چند سرور که یک سرویس رو ارئه می کنندCluster Failover
فرآیند تصادفی به بررسی پدیده هایی می پردازد که در آن ها دو مولفه ی تصادفی بودن و دارای مرحله یا زمان بودن مطرح است.
اگر هزینه جوان سازی کم باشد و نرخ خرابی زیاد باشد، جوان سازی نرم افزار باید در سریع ترین زمان ممکن که نرم افزار در حالت Sp قرار دارد انجام گیرد
1/r2 = دوره طول عمر برنامه
احتمال خراب شدن یکباره برنامه در مقابل دیگر احتمالات کم است
seasonal Kendall و Mann-Kendallکه در داده های مشاهده شده روند رو به بالا یا رو به پایین وجود دارد.
Sen برای تخمین شیب روند. با استفاده از شیب تخمین زده شده زمان فرسودگی منبع مورد انتظار یک منبع محاسبه شود.
ابزار SNMP : مانیتور کردن حالات سیستم عامل در حال اجرا در ایستگاه های کاری مختلف
مشخص کردن وضعیت سلامت هر سیستم
نشان دهنده کاهش تدریجی فضای خالی حافظه و افزایش اندازه جدول فایل است.
(Simple Network Management Protocol)
ابزار SNMP : مانیتور کردن حالات سیستم عامل در حال اجرا در ایستگاه های کاری مختلف
مشخص کردن وضعیت سلامت هر سیستم
نشان دهنده کاهش تدریجی فضای خالی حافظه و افزایش اندازه جدول فایل است.
ابزار SNMP : مانیتور کردن حالات سیستم عامل در حال اجرا در ایستگاه های کاری مختلف
مشخص کردن وضعیت سلامت هر سیستم
نشان دهنده کاهش تدریجی فضای خالی حافظه و افزایش اندازه جدول فایل است.
ابزار SNMP : مانیتور کردن حالات سیستم عامل در حال اجرا در ایستگاه های کاری مختلف
مشخص کردن وضعیت سلامت هر سیستم
نشان دهنده کاهش تدریجی فضای خالی حافظه و افزایش اندازه جدول فایل است.
روندها حضور پیری را مشخص می کنند
مشخص بودن روند رو به بالا یا رو به پایین
رگرسیون : یک فرآیند آماری برای تخمین روابط بین متغیرها می باشد
شناسایی پیری بر اساس روش قبل
سریع ریست نمی کند
سرور آماده به کار را استارت می کند
در خواست ها و سشن ها را از سرور اصلی به این سرور منتقل می کند توسط لود بالانسر
صبر می کند تا کار در خواست های در حال اجرا تمام شود
سرور اصلی را ریست می کند
هیچ در خواستی از دست نرفت
نشت حافظه و چروکیدگی حافظه فیزیکی سرور ها را به استفاده از انژی بیشت در swap ها از حافظه اصلی به حافظه ثانویه سوق می دهد