



عنوان پایان نامه کارشناسی
پردازش تصویر به وسیله هیستوگرام
پایان نامه برای دریافت درجه کارشناسی رشته مهندسی کامپیوتر
تعداد صفحات : 63

سیستم عامل توزیع شده در یک محیط شبکهای اجراء میشود. در این سیستم قسمتهای مختلف برنامه کاربر بدون آنکه خود او متوجه شود میتوانند همزمان در چند کامپیوتر مجزا اجراء شده و سپس نتایج نهایی به کامپیوتر اصلی کاربر بر گردند. به علت تأخیرهای انتقال در شبکه و نویزهای احتمالی در خطوط انتقالی قابلیت اعتماد اجرای یک برنامه دریک سیستم تنها,بیشتر از قابلیت اجرای آن دریک سیستم توزیع شده است .
همچنین درسیستم توزیع شده اگر یکی از کامپیوترهایی که وظیفه اصلی برنامه جاری را برعهده دارد خراب شود کل عمل سیستم مختل خواهد شد . از طرف دیگر اگر اطلاعاتی همزمان در چند کامپیوتر به صورت یکسان ذخیره گردد ویکی از کامپیوترها خراب شود, دادهها را میتوان از کامپیوترهای دیگر بازیابی کرد از این نظر امنیت افزایش مییابد.به سیستم های توزیع شده گاهی اوقات سیستمهای Loosely Coupled یا ارتباط ضعیف نیز میگویند,چرا که هر پردازنده کلاک و حافظه مستقلی دارد . پردازندهها از طریق خطوط مخابراتی مختلفی مثل گذرگاههای سریع یا خطوط تلفن ارتباط دارند. ساختار این پروژه به چهار فصل نگاشته شده که در فصل اول به بیان کلیاتی از موضوع مورد نظر پرداخته ، در فصل دوم به بررسی و ساختار محاسبات توری پرداختیم و همچنین در فصل سوم محاسبات ابری را بیان جزئیات شرح دادیم و در نهایت در فصل چهارم به مقایسه فصول دوم و سوم پرداخته و اهم مطالب را با جزئیات لازمه تحریر نمودیم.
کلید واژه : رایانه ، سیستم توزیع شده ؛ محاسبات توری، محاسبات ابری ، عملکرد ، معماری ، ساختار


چکیده
یک معماری سرویس گرا اساساً یک مجموعه از سرویس ها است که این سرویس ها با هم ارتباط و تعامل دارند. این ارتباط می تواند به صورت ارتباط از طریق پیغام باشد یا اینکه دو یا چند سرویس با همکاری هم، کاری را انجام دهند. معماری سرویس گرا چیز جدیدی نمی باشد. در این پروژه به بررسی معماری سرویس گرا، به عنوان یکی از آخرین دستاوردهای صنعت مهندسی نرم افزار و تکنولوژیهایی قابل استفاده در این معماری، پرداخته می شود.
Service – Oriented Architecture
A Project report
Presented to :
Department of computer Engineering
Engineering Faculty
Islamic Azad University
Computer Field – Software Tandency
Advisor :
M.r Rashidzade
By :
Maryam Zahed Nicksersht
84
1-1- مقدمه:
معماری سرویس گرا به عنوان یکی از آخرین دستاوردها در تولید نرم افزار، به نظر می رسد، در سالهای آتی معماری غالب صنعت فناوری اطلاعات و ارتباطات باشد. علت بوجود آمدن این معماری، ایده ای بود که در ذهن تعدادی از معماران آن وجود داشت و آن نرم افزار به عنوان سرویس بود. در مدل نرم افزار به عنوان سرویس شما نرم افزار خود را بگونه ای طراحی می کنید که قابل استفاده توسط سیستم های دیگر باشد یعنی دیگران می توانند برای استفاده از سرویس شما ثبت نام کنند و هر موقع که لازم داشتند از خدمات آن بهره ببرند، همانند حالتی که در مورد شبکه های تلویزیون کابلی وجود دارد. تا زمانی که شما به سرویس متصل هستید، شما می توانید هر لحظه که خواستید از سرویس استفاده کنید.
برای مدتهای طولانی برنامه نویسان سعی می کردند تا، کدهای خود را بصورت modular بنویسند، تا بتوان از آن در تولید نرم افزارهای دیگر استفاده کرد. تفاوت نوشتن کد بصورت modular و بر اساس معماری سرویس گرا در حجم مخاطبان آن است.
دوباره به همان مثال اول برمی گردیم، وقتی شما کد خود را به منظور قابل استفاده بودن توسط نرم افزارهای دیگر، به شکل Modular می نویسید مانند این است که، یک شبکه تلویزیون کابلی درون یک ساختمان خاص دارید و بنابراین فقط ساکنین آن ساختمان می توانند از آ« بهره برداری کنند.
در جهان امروز طیف مخاطبانی که بالقوه می توانند از سرویس شما استفاده کنند، کل کاربران روی شبکه اینترنت است. بنابراین باید مکانیزمی بوجود می آمد، که می توانست پاسخگوی این محیط جدید (اینترنت) و کاربران آن باشد و بنابراین معماری سرویس گرا بوجود آمد. این معماری توسط دو شرکت IBM ، Microsoft بوجود آمد، که هر دو شرکت طی سالهای اخیر از حامیان اصلی سرویسهای وب و عامل بسیاری از ابداعات جدید در حیطه سرویس های وب، مانند WSE ، UDDI بوده اند. قابل ذکر است، که در آخرین معماری در حال توسعه، در تولید نرم افزار که هنوز هم در مرحله تحقیقاتی است (MDA) ، تدابیری جهت هماهنگی با معماری سرویس گرا در نظر گرفته شده است.
از نمونه های استفاده از این معماری در کشور خودمان، سازمان ثبت احوال کشور است که موظف شده تا پایگاه اطلاعاتی خود را بصورت سرویس وب و مبتنی بر این معماری به سایر نهادها مانند نیروی انتظامی و سایر دستگاه ها ارائه دهد.
1-1-1- معماری سرویس گرا چیست؟
همان طور که در عنوان آن مشخص است، به مفهومی در سطح معماری، اشاره می کند و بنابراین در مورد چیزی پایه ای و اساسی در سطوح بالا است، که پایه و اساس آن تجربیات بدست آمده در تولید سیستم های نرم افزاری مبتنی بر CBD و دو اصل اساسی در صنعت مهندسی نرم افزار یعنی تولید نرم افزار بصورت با همبستگی زیاد و در عین حال با چسبندگی کم است. بنابراین ایده های برنامه نویسی سرویس گرا ایده ا جدید نیست و شما شاید قبلاً از آن استفاده کرده باشید. اما جمع آوری بهترین تجربیات از تولید چنین سیستمهایی بصورت مجتمع و ناظر به وضعیت تکنولوژیکی امروز بشر، که همان مفاهیم مطرح شده در معماری سرویس گرا است چیز جدیدی است. در زیر بصورت دقیق تر این بحث را ادامه می دهیم آیا تولید سیستم های سرویس گرا مفهوم جدیدی است؟ مهندسان نرم افزار، همیشه می گفتند و گفته اند که نرم افزار باید به شکلی نوشته شود که همبستگی زیاد ولی در عین حال اتصال کمی داشته باشد. شرکتهای بزرگ نرم افزاری هم در جهت گام برداشتن برای رسیدن به این دو اصل، تکنولوژی هایی را بوجود آورده اند که به برنامه نویسان اجازه دهد تا به این دو هدف در تولید نرم افزارهای خود تا حد زیادی دست یابند. برای مثال می توان به تکنولوژی هایی مانند CORBA ، COM+ و RMI و موارد دیگر، اشاره کرد. خوب پس مشاهده کردید که موضوع برنامه نویسی سرویس گرا، مفهوم جدیدی نیست و این معماری تلاشی دیگر در جهت تولید نرم افزارهای با همبستگی زیاد و در عین حال با چسبندگی و اتصال کم است. ممکن است بپرسید، پس چرا با وجود تکنولوژی های قدرتمندی چون RMI ، COM+ و CORBA چیز جدیدی بوجود آمد؟ مگر تکنولوژی های قبلی موفق نبودند؟ بله مهمترین اشکال در معماری های قدرتمندی چون موارد مذکور این بود که تولید کنندگان آنها سعی داشتند، که تکنولوژی خود را بر بازار غالب نمایند. رویایی که هرگز به حقیقت . . .


توسعه نرمافزار برگردان نیاز کاربران یا مشتریان درقالب یک محصول نرمافزاری است.توسعه نرمافزار از مرحله طرح یک راه حل مفهومی برای مساله خواسته شده (امکانسنجی) آغاز شده، پس از دریافت خواستهها و تحلیل سیستم طراحی صورت گرفته و در نهایت این طراحی با کمک ابزارهای پیادهسازی تبدیل به یک سیستم واقعی میشود. هدف این فرایند آن است که از یک سو برآورده ساختن نیازهای کاربران و از سوی دیگر کیفیت مناسب عملکرد سیستم تضمین گردد و بنابراین بایستی حاوی مکانیسمهایی برای اعتبارسنجی یعنی خروجی مطابق با خواستهها و وارسیپذیری یعنی صحت عملکرد خروجی باشد. فرایند توسعه ضمن دادن آزادی به تحلیلگر باید تضمین کند که زمانبندی اجرای پروژه رعایت میشود.توسعه نرمافزار ارتباط تنگاتنگی با مهندسی نرمافزار دارد و از دید بسیاری این دو مفاهیمی تقریباً یکسان هستند.در سالهای اخیر با رشد نیاز به تولید نرمافزارهای تجاری توسعه نرمافزار به بحثی مهم تبدیل شده است و روشهای گوناگونی در قالبهای مختلف برای تولید نرمافزارها بر مبنای نیازهای کاربران، مشخصات کلی سیستم، شرایط مدیریتی و اقتصادی، زمان بندی و سطح کیفی به وجود آمده اند.اغلب توسعه نرمافزار Software Development با برنامه نویسی Programming یکسان فرض شده اند در حالیکه توسعه نرمافزار بر خلاف برنامه نویسی با تولید تجاری نرمافزار، استفاده بهینه از بخشهای در دسترس تولید شده و همچنین روشهای مدیریت، افزایش سرعت و افزایش کیفیت پروژههای نرمافزاری سر و کار دارد.
کلید واژگان : نرم افزار ، توسعه ، چابک ، معیار ، سیستم ، برنامه نویسی ، پروژه ، سازمان


تعداد صفحات : 36