کوشا فایل

کوشا فایل بانک فایل ایران ، دانلود فایل و پروژه

کوشا فایل

کوشا فایل بانک فایل ایران ، دانلود فایل و پروژه

دانلود مقاله-پروژه با موضوع پایگاه داده شی گرا / برای دانشجویان کامپیوتر

اختصاصی از کوشا فایل دانلود مقاله-پروژه با موضوع پایگاه داده شی گرا / برای دانشجویان کامپیوتر دانلود با لینک مستقیم و پر سرعت .

دانلود مقاله-پروژه با موضوع پایگاه داده شی گرا / برای دانشجویان کامپیوتر


دانلود مقاله-پروژه با موضوع پایگاه داده شی گرا / برای دانشجویان کامپیوتر

چکیده:

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

 

 

 

فهرست مطالب:

شی گرایی
مفاهیم شی گرایی
مفاهیم شئگرایی دیدگاه شئگرا
شناخت اشیاء
مدل اشیاء
رفتار اشیاء
زبان یکپارچه مدل‌سازی چیست؟
مصارف دیاگرام موارد استفاده
نمودار کلاس
نمودار همکاری
نمودار ترتیبی
کنترل دسترسی تشخیصی در پایگاههای داده شیء گرا
امکاناتی برای انجام تحلیلهای امنیتی
برنامه نویسی شی ئ گرا
تجرید
سه اصل
کپسول سازی
وراثت
منابع و ماخذ

 

فرمت فایل : word

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

قابل ویرایش

 


دانلود با لینک مستقیم


دانلود مقاله-پروژه با موضوع پایگاه داده شی گرا / برای دانشجویان کامپیوتر

دانلود مقاله ISI سیستم های معامله رویداد محور فرایند گرا

اختصاصی از کوشا فایل دانلود مقاله ISI سیستم های معامله رویداد محور فرایند گرا دانلود با لینک مستقیم و پر سرعت .

موضوع فارسی :سیستم های معامله رویداد محور فرایند گرا

موضوع انگلیسی :process-oriented event-driven transaction systems

تعداد صفحه :21

فرمت فایل :PDF

سال انتشار :2009

زبان مقاله : انگلیسی

 

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

 


دانلود با لینک مستقیم


دانلود مقاله ISI سیستم های معامله رویداد محور فرایند گرا

اختصاصی از کوشا فایل دانلود مقاله ISI سیستم های معامله رویداد محور فرایند گرا دانلود با لینک مستقیم و پرسرعت .

دانلود مقاله ISI سیستم های معامله رویداد محور فرایند گرا


موضوع فارسی :سیستم های معامله رویداد محور فرایند گرا

موضوع انگلیسی :process-oriented event-driven transaction systems

تعداد صفحه :21

فرمت فایل :PDF

سال انتشار :2009

زبان مقاله : انگلیسی

 

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

 


دانلود با لینک مستقیم

پایان نامه آموزش توسعه نرم افزار های شیء گرا توسط UML

اختصاصی از کوشا فایل پایان نامه آموزش توسعه نرم افزار های شیء گرا توسط UML دانلود با لینک مستقیم و پرسرعت .

پایان نامه آموزش توسعه نرم افزار های شیء گرا توسط UML


پایان نامه آموزش توسعه نرم افزار های شیء گرا توسط UML

 

 

 

 

 

 



فرمت فایل : word(قابل ویرایش)

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

مقدمه:

شئ گرایی برای توسعه نرم افزار اولین بار در سال 1960 پیشنهاد شد، این روش پس از 20 سال به طور گسترده مورد استفاده جامعه نرم افزاری قرار گرفت. توسعه دهندگان نرم افزار در دهه 1980 توجه جدی خو د را روی شئ گرایی معطوف کردند. تکنولوژی شئ، قابلیت استفاده مجدد را برای مؤلفه های نرم افزاری به ارمغان آورد و این نیز به نوبه خود در تسریع توسعه نرم افزار و تولید محصول با کارایی بالا تاثیر بسزایی دارد؛ بعلاوه سیستمهای شئ گرا، براحتی قابل توسعه و به سهولت با محیط سازگار- از نظر تعامل با سیستمهای موجود در محیط استفاده از نرم افزار- می شوند . دیدگاه شئ گرایی یک سیر تکاملی دارد؛ همچنانکه در بخشهای بعدی خواهیم دید، تعیین همه کلاسهای لازم برای یک سیستم دریک تکرار تا اندازه ای غیرممکن است و به محض تکمیل مدلهای تحلیل و طراحی نیاز به کلاسهای جدید در سیستم نمایان می شود.

درک سیستمهای پیچیده وتولید نرم افزار برای چنین سیستمهایی توسط افرادی که در این زمینه تجربه کافی ندارند، کاری بس مشکل است . همچنین محصولی که این افراد تولید می کنند کارایی لازم را نخواهد داشت، در اینجا مهندسی نرم افزار به کمک افراد آمده و با مطالعه روشها و فنون مختلف مسیر توسعه و تولید نرم افزار را هموار می- سازد. تجربیات بدست آمده در این زمینه، متدها و فرآیندهای متنوعی را برای توسعه نرم افزار در اختیار توسعه دهندگان قرار داده و ابزارهای مناسبی نیز این روشها را پشتیبانی می کنند.

درتوسعه یا ساخت نرم افزار برای یک سیستم، مشتری باید تعریف دقیقی از سیستم را در اختیار توسعه دهنده قرار دهد. در توصیف سیستم، زبان طبیعی تا آن اندازه دقیق نیست که بتوان همه نیازمندیها، ساختار و رفتار سیستم را با آن بیان کرد و کد نویسی نیز چنان وارد جزئیات می شود که به یکباره نمی توان سیستم را در این سطح تشریح کرد. لذا برای درک سیستم دست به مدل سازی می زنیم و مؤلفه های سیستم ، زیر سیستمها و رفتار سیستم را به صورت نمودارهای گرافیکی ترسیم می نماییم تا موارد قابل کاربرد و مهم به صورت برجسته به چشم بخورد و هیچ موردی در حوزه سیستم از قلم نیافتد .

در متد شئ گرا از زبان مدلسازی استانداردUML که در فصل چهارم به تفصیل خواهدآمد، استفاده می شود. این زبان به وسیله ابزارهای مختلفی نظیر Rational Rose ، visio و … پشتیبانی می شود، میتوان ازUML در فرآیندهای مختلف استفاده کرد.

مفاهیم اساسی

در این بخش مفاهیم اساسی توسعه نرم افزار شئ گرا را معرفی می کنیم. در بالا به متد و فرآیند اشاره شد اما هیچ تعریفی از آنها ارائه نشد، حال این دو مفهوم کلی را بصورت زیر تعریف می کنیم.

متد، متدلوژی و اشیاء

متد مجموعه ای از وظایف را جهت تعیین نیازمندیها، تحلیل، طراحی، برنامه ریزی، تست و پشتیبانی مشخص می کند. از نظر فنی فرآیند توسعه نرم افزار- متدلوژی- یک قالب کاری برای وظایف لازم جهت ساختن یک نرم افزار با کیفیت بالاست. در واقع متدلوژی، فرآیندی ساختارمند جهت توسعه نرم افزار است که به وسیله فنون و ابزارها حمایت می شود.

متد شئ گرا برپایه شئ استوار است، دیدگاه شئ گرا دنیای واقعی مسئله را بصورت مجموعه ای از اشیاء مرتبط به هم می بیند. شئ یک موجودیت است که در دامنه مسئله نقش تعریف شده ای دارد و دارای حالت، رفتار و شناسه خاص خودش است. شئ می تواند یک ساختار ، نقش ، مکان و … باشد؛ شئ داده و رفتار را در خود کپسوله میکند و از دسترسی اشیاء دیگر به داده های خود جلوگیری و همچنین تا ثیر تغییرات محیطی بر این داده ها را کاهش می دهد و تنها راه دسترسی به این داده ها استفاده از اعمال یا سرویس های خود شئ می باشد. کلاس نوع اشیاء را نشان می دهد و شامل ویژگی های مشترک مجموعه ای از اشیاء می باشد، شئ نمونه ای از کلاس است . داده های شئ تحت عنوان صفات در کلاس شناخته می شوند و مقادیر این صفات است که شئ را از دیگر اشیای همنوع متمایز می نمایند. اعمال به دستکاری تعداد محدودی از صفات می پردازند و ارتباط بین کلاس ها و دیگر عناصرسیستم نیز از طریق همین سرویسها- اعمال – صورت می گیرد. به عبارت دیگر کلاس یک مشخصه کلی (قالب ، الگو یا طرح اولیه )است که مجموعه ای ازاشیاء مشابه را نشان می- دهد.نماد گرافیکی کلاس در شکل زیر نشان داده شده است، این نماد شامل سه قسمت است که بترتیب نام کلاس ، لیست صفات و لیست اعمال را نشان می دهند.

————————
نام کلاس

————————
لیست صفات

————————
لیست اعمال

————————

با تعریف کردن اشیاء موجود در سیستم از نوع یک کلاس خاص، این اشیاء همه صفات، اعمال و روابط کلاس مربوطه را به ارث می برند. یک فوق کلاس شامل ویژگی های مشترک صفات و اعمال جمعی از کلاسهاست و زیرکلاس یک حالت خاص ازفوق کلاس است که به آن تخصیص نیزگفته می شود. این تعاریف از وجود یک سلسله مراتب نشان می دهد که در آن کلاسهای تعمیم(فوق کلاس) توسط کلاسهای تخصیص به ارث برده می شوند، ممکن است که هر کدام ازکلاس های تخصیص دارای یکسری صفات و اعمال اختصاصی اضافی باشند. مجموعه مقادیر موجود برای یک صفت در یک کلاس، دامنه مقادیر آن صفت را نشان می دهد.

پیامها وسیله برقراری ارتباط و تعامل بین اشیاء می باشند ، این پیامها شئ مقصد را تحریک می کنند تا یک کار خاص را انجام دهد. سرویسی که در شیء فرستنده پیام تولید می کند، یک پیام با قالب message:[destination, operation, parameters] ارسال میکند که در آن destination شیء گیرنده و operation سرویسی از شیء گیرنده است که پیام را دریافت می کند و parameters شامل اطلاعات لازم جهت انجام موفق سرویس خواسته شده است. شکل 1-2 مثالی از کلاسهای تعمیم و تخصیص را نشان می دهد که در آن برای دانشجو یک فوق کلاس دانشجو داریم که شامل داده ها و اعمال مشترک بین دانشجویان دوره لیسانس و فوق لیسانس است، همچنین دو زیر کلاس تخصیص جداگانه برای دانشجویان لیسانس و فوق لیسانس نشان داده شده است که حالات خاصی از کلاس دانشجو هستند. در عمل ما شیئی از نوع فوق کلاس دانشجو نخواهیم داشت، در این حالت به کلاسstudent یک کلاس مجرد گفته می- شود . کلاس مجرد کلاسی است که هیچ شیئی از آن نوع نداشته باشیم.

کپسوله سازی، ارث بری و چند ریختی

با توجه به مطالب ذکر شده در بالا، شیء گرایی به واسطه سه خاصیت مهم کپسوله سازی، ارث بری و چند ریختی یک روش منحصر بفرد است . بطور کلی کپسوله سازی تکنیکی است که جزئیات پیاده سازی داخلی شئ را از دید سایر اشیاء و مؤلفه های سیستم پنهان می کند(مخفی سازی اطلاعات ). عمل، تابعی است که در تمام نمونه های یک نوع وجود دارد و سایر اشیاء تنها از طریق اعمال موجود در یک شئ می توانند به اطلاعات این شئ دسترسی داشته باشند، بنابراین اعمال یک واسط برای کلاس بشمار می روند. واسط رویه بیرونی کلاس را بدون اینکه ساختار درونی وچگونگی پیاده سازی اعمال را نشان دهد ، نمایان می سازد. خاصیت کپسوله سازی داده و عمل دریک کلاس بطور عمده مزایای زیررا دارد.

  • جزئیات پیاده سازی داخلی داده و روتین ها از دنیای خارج قابل مشاهده نیست (مخفی سازی اطلاعات ). این خاصیت تاثیر تغییرات محیطی بر شیء را کاهش می-دهد.
  • ساختمان داده ها و اعمالی که برای دستکاری داده ها در نظر گرفته شده با هم ادغام شده و تحت یک نام (اسم کلاس) شناخته می شود و این اساس مؤلفه قابل استفاده مجدد را فراهم می نماید.
  • واسطه های ما بین اشیاء کپسوله شده ساده اند، لزومی ندارد که شئ فرستنده پیام از جزئیات ساختمان داده درونی شئ مقصد اطلاع داشته باشد.

خاصیت کلیدی بعدی که روش شیءگرا را از سایر روشها متمایز می دارد، ارث بری است. در شکل بالا زیر کلاس Graduate student همه صفات و اعمال متناظر شده با فوق کلاسش(Student) را به ارث می برد، بدین معنی که تمام ساختمان داده و الگوریتمهایی که برای فوق کلاسstudent طراحی و پیاده سازی شده برای کلاس تخصیص نیز در دسترس می باشد و هیچ کار اضافی لازم نیست انجام بگیرد . و عملاً از قابلیت استفاده مجدد استفاده می کند.

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

  • می توان بدون استفاده از ارث بری کلاس را بطور مستقل طراحی نمود.
  • بررسی ساختار سلسله مراتبی کلاس های موجود و یافتن سطحی از ارث بری که بیشترین صفات و اعمال کلاس جدید را داراست، سپس کلاس جدید در سطح بالاتر قرار داده می شود و صفات و اعمال موجود در سطح پایین تر را به ارث می برد.
  • سلسله مراتب را ساختاربندی مجدد می نماییم تا کلاس جدید بتواند صفات و اعمال لازم را به ارث ببرد.

دانلود با لینک مستقیم

پایان نامه برسی معماری سرویس گرا

اختصاصی از کوشا فایل پایان نامه برسی معماری سرویس گرا دانلود با لینک مستقیم و پرسرعت .

پایان نامه برسی معماری سرویس گرا


پایان نامه برسی معماری سرویس گرا

 

 

 

 

 

 

 

 

 



فرمت:word(قابل ویرایش)

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

 

فهرست مطالب :

  • پیش گفتار
  • چکیده
  • فصل 1: معرفی معماری سرویس گرا
  • 1-1 مقدمه
  • 1-1-1- معماری سرویس گرا چیست؟
  • 1-1-2- ویژگی های سیستم های مبتنی بر معماری سرویس گرا
  • 1-1-3- آماده شدن برای معماری سرویس گرا
  • 1-2 معرفی
  • 1-3- ویژگیهای سرویس و محاسبات سرویس گرا
  • 1-4- نرم افزار به عنوان سرویس
  • 1-6- معماری سرویس گرای مقدماتی
  • 1-6- 1 معماری سرویس گرای توسعه یافته
  • 1-7- نیازمندیهای معماری سرویس گرا
  • فصل دوم: معماری سرویس گرا (SOA)
  • 2-1 مقدمه
  • 2-2- محرکهای تجاری در رویکردی جدید
  • 2-3- معماری سرویس گرا بعنوان یک راه حل
  • 2-3-1- تجزیه و تحلیل و طراحی شی ء گرا
  • 2-3-2- طراحی بر مبنای جزء
  • 2-3-3 – طراحی سرویس گرا
  • 2-3-4- طراحی بر مبنای واسط
  • 2-3-5- معماری های برنامه های کاربردی لایه ای
  • 2-4- نگاهی دقیق تر به معماری سرویس گرا
  • 2-4-1- جنبه های عملکردی عبارتند از
  • 2-4-2- جنبه های کیفیت خدمات عبارتند از
  • 2-4-3 همکاری SOA
  • 2-4-4- نقش ها در معماری سرویس گرا عبارتند از
  • 2-4-5- عملیات در معماری سرویس گرا عبارتست از
  • 2-4-6- سرویس ها در بافت SOA
  • 2-4-7- سرویس ها در برابر اجزاء
  • 2-5- مزایای معماری سرویس گرا
  • 2-5-1- بالا بردن دارایی های موجود
  • 2-5-2- مجتمع سازی و اداره کردن راحت تر پیچیدگی
  • 2-5-3- پاسخ گویی بیشتر و خرید و فروش سریعتر
  • 2-5-4- کاهش هزینه و افزایش استفاده مجدد
  • 2-5-5- آمادگی در برابر حوادث
  • فصل سوم: معماری سرویس وب
  • 3-1 مقدمه
  • 3-2- سرویس وب چیست؟
  • 3-3- مدل چند لایه مبتنی بر Xml-Web Service
  • 3-2-1- برخی از ویژگیهای اصلی سرویس وب عبارتند از
  • 3-4- قابلیت عملکرد متقابل سرویس وب
  • 3-3-2 گزارش مبنای WS-I 1.0
  • فصل چهارم: انتخاب های تکنولوژی
  • 4-1- انتخابهای تکنولوژی
  • 4-2 مقدمه
  • 4-2-1- مزایای سرویس وب
  • 4-4-2- معایب سرویس وب
  • 4-3- لایه های پشته معماری سرویس گرا
  • 4-3-1 حمل و نقل
  • 4-3-2- پروتکل تبادل سرویس
  • 3-3-4 شرح سرویس
  • 4-3-4 سرویس
  • 4-3-5 فرآیند تجاری
  • 4-3-6 بایگانی سرویس
  • 4-3-7 سیاست
  • 4-3-8 امنیت
  • 4-3-9 معاملات
  • 4-3-10 مدیریت
  • خلاصه
  • نتیجه گیری
  • مراجع

 

چکیده:

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

برای مدتهای طولانی برنامه نویسان سعی می کردند تا، کدهای خود را بصورت modular بنویسند، تا بتوان از آن در تولید نرم افزارهای دیگر استفاده کرد. تفاوت نوشتن کد بصورت modular و بر اساس معماری سرویس گرا در حجم مخاطبان آن است.

دوباره به همان مثال اول برمی گردیم، وقتی شما کد خود را به منظور قابل استفاده بودن توسط نرم افزارهای دیگر، به شکل Modular می نویسید مانند این است که، یک شبکه تلویزیون کابلی درون یک ساختمان خاص دارید و بنابراین فقط ساکنین آن ساختمان می توانند از آ« بهره برداری کنند.

در جهان امروز طیف مخاطبانی که بالقوه می توانند از سرویس شما استفاده کنند، کل کاربران روی شبکه اینترنت است. بنابراین باید مکانیزمی بوجود می آمد، که می توانست پاسخگوی این محیط جدید (اینترنت) و کاربران آن باشد و بنابراین معماری سرویس گرا بوجود آمد. این معماری توسط دو شرکت IBM ، Microsoft بوجود آمد، که هر دو شرکت طی سالهای اخیر از حامیان اصلی سرویسهای وب و عامل بسیاری از ابداعات جدید در حیطه سرویس های وب، مانند WSE ، UDDI بوده اند. قابل ذکر است، که در آخرین معماری در حال توسعه، در تولید نرم افزار که هنوز هم در مرحله تحقیقاتی است (MDA) ، تدابیری جهت هماهنگی با معماری سرویس گرا در نظر گرفته شده است.

از نمونه های استفاده از این معماری در کشور خودمان، سازمان ثبت احوال کشور است که موظف شده تا پایگاه اطلاعاتی خود را بصورت سرویس وب و مبتنی بر این معماری به سایر نهادها مانند نیروی انتظامی و سایر دستگاه ها ارائه دهد.

    معماری سرویس گرا چیست؟

همان طور که در عنوان آن مشخص است، به مفهومی در سطح معماری، اشاره می کند و بنابراین در مورد چیزی پایه ای و اساسی در سطوح بالا است، که پایه و اساس آن تجربیات بدست آمده در تولید سیستم های نرم افزاری مبتنی بر CBD و دو اصل اساسی در صنعت مهندسی نرم افزار یعنی تولید نرم افزار بصورت با همبستگی زیاد و در عین حال با چسبندگی کم است. بنابراین ایده های برنامه نویسی سرویس گرا ایده ا جدید نیست و شما شاید قبلاً از آن استفاده کرده باشید. اما جمع آوری بهترین تجربیات از تولید چنین سیستمهایی بصورت مجتمع و ناظر به وضعیت تکنولوژیکی امروز بشر، که همان مفاهیم مطرح شده در معماری سرویس گرا است چیز جدیدی است. در زیر بصورت دقیق تر این بحث را ادامه می دهیم آیا تولید سیستم های سرویس گرا مفهوم جدیدی است؟ مهندسان نرم افزار، همیشه می گفتند و گفته اند که نرم افزار باید به شکلی نوشته شود که همبستگی زیاد ولی در عین حال اتصال کمی داشته باشد. شرکتهای بزرگ نرم افزاری هم در جهت گام برداشتن برای رسیدن به این دو اصل، تکنولوژی هایی را بوجود آورده اند که به برنامه نویسان اجازه دهد تا به این دو هدف در تولید نرم افزارهای خود تا حد زیادی دست یابند. برای مثال می توان به تکنولوژی هایی مانند CORBA ، COM+ و RMI و موارد دیگر، اشاره کرد. خوب پس مشاهده کردید که موضوع برنامه نویسی سرویس گرا، مفهوم جدیدی نیست و این معماری تلاشی دیگر در جهت تولید نرم افزارهای با همبستگی زیاد و در عین حال با چسبندگی و اتصال کم است. ممکن است بپرسید، پس چرا با وجود تکنولوژی های قدرتمندی چون RMI ، COM+ و CORBA چیز جدیدی بوجود آمد؟ مگر تکنولوژی های قبلی موفق نبودند؟ بله مهمترین اشکال در معماری های قدرتمندی چون موارد مذکور این بود که تولید کنندگان آنها سعی داشتند، که تکنولوژی خود را بر بازار غالب نمایند. رویایی که هرگز به حقیقت نمی پیوست . بنابراین با توجه به این موضوع که این تکنولوژیها قادر به تعامل مناسب با یکدیگر نبودند عملاً اصل همبستگی زیاد بصورت خود بخود رد می شد.

البته معماری های مذکور اشکالات دیگری هم داشتند که نسبت به موارد بالا از اهمیت کمتری برخوردار است که از جمله آنها می توان به عدم هماهنگی با اصول امنیتی مورد استفاده در اینترنت اشاره کرد. البته بعدها راه حل هایی هم برای این مشکل بوجود آمد (مانند Over HTTP RPC ) اما به این علت که از روز اول، در طراحی این تکنولوژی ها این امر در نظر گرفته نشده بود، از کارایی مناسبی برخوردار نبودند. مفهوم همبستگی زیاد و در عین حال با چسبندگی و اتصال کم، وقتی بخواهد در جهت ارزیابی یک سیستم نرم افزاری یا تکنولوژی، مورد استفاده قرار گیرد بسیار مبهم می شود. حتی کسی می تواند ایده های همبستگی و چسبندگی را با هم ترکیب کند! برای جلوگیری از چنین ابهاماتی، شما می توانید از ویژگی های معماری سرویس گرا به عنوان یک راه برای ارزیابی میزان همبستگی و چسبندگی و اتصال یک سیستم نرم افزاری یا یک تکنولوژی استفاده کنید. اگر چه مفاهیم مطرح شده در معماری سرویس گرا دقیقاً همان مفاهیم همبستگی زیاد و در عین حال چسبندگی کم نیستند، اما سیستمهایی که بر اساس معماری سرویس گرا طراحی و پیاده سازی شده اند، نشان داده اند که توانسته اند تا حد بسیار زیادی ویژگی های همبستگی زیاد و در عین حال چسبندگی کم را بخوبی در خود ایجاد و حفظ کنند.

معماری سرویس گرا (SOA) روشی جدید و در حال تکامل برای ساخت برنامه های توزیع شده است. سرویس ها اجزای توزیع شده با رابط های تعریف شده و مشخص هستند که پیغام های XMIL را پردازش و تبادل می کنند. با رویکرد سرویس گرا می توان راه حل هایی را ارائه داد که به مرز دامنه های سازمان یا شرکت محدود نیستند. با استفاده از SOA می توان در شرکتی که دارای سیستم ها و برنامه های کاربردی مختلف روی ایستگاه های کاری متفاوت است، یک راه حل یکپارچه سازی با استقلال زیاد ساخت که جریان یکنواخت و ناهماهنگ کار را تضمین کند.

هرکس که از سایت های تجارت الکترونیکی به صورت آنلاین خرید کرده باشد، با مفهوم سرویس ها آشنا است. وقتی که سفارش تان را دادید، باید اطلاعات کارت اعتباری تان را ارایه کنید که به طور معمول توسط یک فراهم کننده سرویس ثانویه، تأیید و شارژ می شود. وقتی که سفارش پذیرفته شد، شرکت سفارش گیرنده با یک شرکت فراهم کننده سرویس حمل و نقل هماهنگ می کند و در نهایت کالای شما تحویلتان می شود. نیاز به معماری سرویس گرا از جنبه های دیگر نیز به شکل بارزی در برنامه های کاربردی تجارت الکترونیکی مشهود است. اگر مثلاً جزء مربوط به پرداخت کارت اعتباری Offline و یا غیر فعال باشد، قرار نیست که فرآیند فروش متوقف شود. بلکه سفارش ها بایستی پذیرفته شوند و عملیات پرداخت به وقت دیگری موکول شود.

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

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

و اگر یک سرویس به طور کامل قابل دسترس نباشد، (که هرگز نباید در یک سیستم SOA پایدار اتفاق بیفتد) آن وقت معماری طوری طراحی شده است که روی دادن خطاهایی که منجر به قطع کامل در خواست سرویس می شود، امکان پذیر نباشد. SOA قابلیت اطمینان را افزایش می دهد، چون خطاهای موقت در بخشی از جریان کار نمی توانند کل فرآیند تجاری را از کار بیاندازند.

به بیان کلی، SOA فرآیندی تکامل یافته را ارائه می نماید و از این نظر می توان آن را بلوغ سرویس های وب و تکنولوژی های یکپارچه سازی به حساب آورد. در SOA به این امر توجه شده است که سیستم های با اهمیت حیاتی که بر مبنای تکنولوژی های توزیع شده ساخته می شوند، باید تضمین های خاصی را تأمین نمایند. در این گونه سیستم ها باید این اطمینان وجود داشته باشد که درخواست های سرویس به طور صحیح مسیر دهی و هدایت شوند، در زمان مناسب به آن ها پاسخ داده شود، و این سرویس ها به طور واضح و دقیق سیاست های ارتباطی و رابط های خود را اعلام کنند.

 

 


دانلود با لینک مستقیم