بررسی معماری سرویس گرا
-1- مقدمه:
معماری سرویس گرا به عنوان یکی از آخرین دستاوردها در تولید نرم افزار، به نظر می رسد، در سالهای آتی معماری غالب صنعت فناوری اطلاعات و ارتباطات باشد. علت بوجود آمدن این معماری، ایده ای بود که در ذهن تعدادی از معماران آن وجود داشت و آن نرم افزار به عنوان سرویس بود. در مدل نرم افزار به عنوان سرویس شما نرم افزار خود را بگونه ای طراحی می کنید که قابل استفاده توسط سیستم های دیگر باشد یعنی دیگران می توانند برای استفاده از سرویس شما ثبت نام کنند و هر موقع که لازم داشتند از خدمات آن بهره ببرند، همانند حالتی که در مورد شبکه های تلویزیون کابلی وجود دارد. تا زمانی که شما به سرویس متصل هستید، شما می توانید هر لحظه که خواستید از سرویس استفاده کنید.
برای مدتهای طولانی برنامه نویسان سعی می کردند تا، کدهای خود را بصورت modular بنویسند، تا بتوان از آن در تولید نرم افزارهای دیگر استفاده کرد. تفاوت نوشتن کد بصورت modular و بر اساس معماری سرویس گرا در حجم مخاطبان آن است.
دوباره به همان مثال اول برمی گردیم، وقتی شما کد خود را به منظور قابل استفاده بودن توسط نرم افزارهای دیگر، به شکل Modular می نویسید مانند این است که، یک شبکه تلویزیون کابلی درون یک ساختمان خاص دارید و بنابراین فقط ساکنین آن ساختمان می توانند از آ« بهره برداری کنند.
در جهان امروز طیف مخاطبانی که بالقوه می توانند از سرویس شما استفاده کنند، کل کاربران روی شبکه اینترنت است. بنابراین باید مکانیزمی بوجود می آمد، که می توانست پاسخگوی این محیط جدید (اینترنت) و کاربران آن باشد و بنابراین معماری سرویس گرا بوجود آمد. این معماری توسط دو شرکت IBM ، Microsoft بوجود آمد، که هر دو شرکت طی سالهای اخیر از حامیان اصلی سرویسهای وب و عامل بسیاری از ابداعات جدید در حیطه سرویس های وب، مانند WSE ، UDDI بوده اند. قابل ذکر است، که در آخرین معماری در حال توسعه، در تولید نرم افزار که هنوز هم در مرحله تحقیقاتی است (MDA) ، تدابیری جهت هماهنگی با معماری سرویس گرا در نظر گرفته شده است.
از نمونه های استفاده از این معماری در کشور خودمان، سازمان ثبت احوال کشور است که موظف شده تا پایگاه اطلاعاتی خود را بصورت سرویس وب و مبتنی بر این معماری به سایر نهادها مانند نیروی انتظامی و سایر دستگاه ها ارائه دهد.
1-1-1-معماری سرویس گرا چیست؟
همان طور که در عنوان آن مشخص است، به مفهومی در سطح معماری، اشاره می کند و بنابراین در مورد چیزی پایه ای و اساسی در سطوح بالا است، که پایه و اساس آن تجربیات بدست آمده در تولید سیستم های نرم افزاری مبتنی بر CBD و دو اصل اساسی در صنعت مهندسی نرم افزار یعنی تولید نرم افزار بصورت با همبستگی زیاد و در عین حال با چسبندگی کم است. بنابراین ایده های برنامه نویسی سرویس گرا ایده ا جدید نیست و شما شاید قبلاً از آن استفاده کرده باشید. اما جمع آوری بهترین تجربیات از تولید چنین سیستمهایی بصورت مجتمع و ناظر به وضعیت تکنولوژیکی امروز بشر، که همان مفاهیم مطرح شده در معماری سرویس گرا است چیز جدیدی است. در زیر بصورت دقیق تر این بحث را ادامه می دهیم آیا تولید سیستم های سرویس گرا مفهوم جدیدی است؟ مهندسان نرم افزار، همیشه می گفتند و گفته اند که نرم افزار باید به شکلی نوشته شود که همبستگی زیاد ولی در عین حال اتصال کمی داشته باشد. شرکتهای بزرگ نرم افزاری هم در جهت گام برداشتن برای رسیدن به این دو اصل، تکنولوژی هایی را بوجود آورده اند که به برنامه نویسان اجازه دهد تا به این دو هدف در تولید نرم افزارهای خود تا حد زیادی دست یابند. برای مثال می توان به تکنولوژی هایی مانند CORBA ، COM+ و RMI و موارد دیگر، اشاره کرد. خوب پس مشاهده کردید که موضوع برنامه نویسی سرویس گرا، مفهوم جدیدی نیست و این معماری تلاشی دیگر در جهت تولید نرم افزارهای با همبستگی زیاد و در عین حال با چسبندگی و اتصال کم است. ممکن است بپرسید، پس چرا با وجود تکنولوژی های قدرتمندی چون RMI ، COM+ و CORBA چیز جدیدی بوجود آمد؟ مگر تکنولوژی های قبلی موفق نبودند؟ بله مهمترین اشکال در معماری های قدرتمندی چون موارد مذکور این بود که تولید کنندگان آنها سعی داشتند، که تکنولوژی خود را بر بازار غالب نمایند. رویایی که هرگز به حقیقت نمی پیوست . بنابراین با توجه به این موضوع که این تکنولوژیها قادر به تعامل مناسب با یکدیگر نبودند عملاً اصل همبستگی زیاد بصورت خود بخود رد می شد.
-9-3-4- استانداردهای نوظهور برای معاملات :
برای راحت تر کردن این تعاریف در داخل یک محیط سرویس وب، لایه معاملات پشته معماری ما حاوی استانداردهای WS-coordiation و WS – Transaction می باشد. هر چند سرویس وب به همان سطح هماهنگی و رفتار تعریف شده برای معاملات سنتی نیاز دارد، اما برای کنترل نتایج یک عمل، یک روش پیچیده نیز برای اداره معاملات و نتایج از چندین سرویس مورد نیاز است.
باید اشاره شود که هر دو استاندارد WS-coordiation و WS-Transaction هنوز به عنوان استانداردهای نوظهور در نظر گرفته می شوند، و کار بیشتری برای نهایی کردن مشخصات نیاز است.
WS-coordination :
Ws- coordiation یک چارچوب کاری چند منظوره و گسترش پذیر برای فراهم آوردن پروتکل هایی است که اعمال معاملات گسترده را هماهنگ می سازند. این چارچوب کاری تعریف شده، سرویس های برنامه کاربردی را جهت ایجاد زمینه مورد نیاز برای پخش یک فعالیت به سرویس های دیگر و ثبت کرد پروتکل های هماهنگی قادر می سازد. این چارچوب کاری همچنین فرایندهای معاملات موجود، جریان کار، و دیگر سیستم های هماهنگی را قادر می سازد تا پروتکل های خصوصی شان را مخفی کنند و در یک محیط همگن کار کنند که می تواند با ترتیب دهی پیام و همگام سازی ماشین حالت استفاده شود.
WS-Transaction :
WS-Transaction شامل پشتیبانی برای دو نوع معاملات است. این استاندارد، انواع هماهنگی مورد استفاده با چارچوب کاری هماهنگی گسترش پذیری را که در WS-coordiation توضیح داده شد، شرح می دهد. دو نوع هماهنگی تعریف می شود : معامله اتمیک (AT) و فعالیت تجاری (BA).
WS-Transaction یک بلوک سازنده استفاده شده با دیگر مشخصات (مثلاً WS-coordition و WS – security ) و پروتکل های ویژه برنامه کاربردی می باشد که قادر به وفق دادن انواع وسیعی از پروتکل های هماهنگی مربوط به اعمال هماهنگی برنامه های کاربردی گسترده هستند.
فهرست مطالب
عنوان صفحه
پیش گفتار .................................................................................. A
چکیده........................................................................................ D
فصل 1 :
1-1- مقدمه............................................................................... 2
1-1-1- معماری سرویس گرا چیست؟......................................................... 3
2-1-1- ویژگی های سیستم های مبتنی بر معماری سرویس گرا................ 9
3-1-1- آماده شدن برای معماری سرویس گرا.......................................... 12
2-1- معرفی.................................................................................................. 15
3-1- ویژگیهای سرویس و محاسبات سرویس گرا..................................... 17
4-1- نرم افزار به عنوان سرویس............................................................... 19
5-1- مفهوم معماری سرویس گرا............................................................... 20
6-1- معماری سرویس گرای مقدماتی......................................................... 23
7-1- معماری سرویس گرای توسعه یافته................................................... 25
8-1- نیازمندیهای معماری سرویس گرا...................................................... 29
فصل 2 : معماری سرویس گرا
1-2- مقدمه.................................................................................................. 32
2-2- محرک های تجاری در رویکردی جدید............................................... 32
3-2- معماری سرویس گرا به عنوان یک راه حل........................................ 35
1-3-2- تجزیه و تحلیل و طراحی شی گرا................................................... 35
2-3-2- طراحی بر مبنای جزء..................................................................... 36
3-3-2- طراحی سرویس گرا....................................................................... 37
4-3-2- طراحی بر مبنای واسط.................................................................. 39
5-3-2- معماریهای برنامه های کاربردی لایه ای ...................................... 41
4-2- نگاهی دقیق تر بر معماری سرویس گرا............................................. 42
1-4-2- جنبه های عملکردی........................................................................ 43
2-4-2- جنبه های کیفیت سرویس............................................................... 44
3-4-2- همکاری SOA................................................................................ 45
4-4-2- نقش ها در معماری سرویس گرا................................................... 45
5-4-2- عملیات در معماری سرویس گرا.................................................... 46
6-4-2- سرویس در بافت SOA................................................................. 48
7-4-2- سرویس در برابر اجزاء................................................................. 49
5-2- مزایای معماری سرویس گرا.............................................................. 51
1-5-2- بالا بردن دارایی های موجود......................................................... 51
2-5-2- مجتمع سازی و اداره کردن راحت تر پیچیدگی ............................ 52
3-5-2- پاسخگویی بیشتر و خرید و فروش سریعتر ................................. 52
4-5-2- کاهش هزینه و افزایش استفاده مجدد............................................ 52
5-5-2- آمادگی در برابر حوادث................................................................. 53
فصل 3 : معماری سرویس وب
1-3- مقدمه.................................................................................................. 55
2-3- سرویس وب چیست؟........................................................................... 56
3-3- مدل چند لایه مبتنی بر XML-Web service.................................... 56
1-2-3- برخی از ویژگیهای سرویس های وب............................................ 63
4-3- قابلیت عملکرد متقابل سرویس های وب.............................................. 65
1-1-3-3- انگیزه های مالی برای معماری سرویس گرا ............................ 66
2-1-3-3- خصیصه های معماری سرویس وب......................................... 68
3-1-3-3- سازمان قابلیت عملکرد متقابل سرویس های وب...................... 69
4-1-3-3- خصوصیات گزارش.................................................................. 71
5-1-3-3- موارد کاربردی و سناریوی مورد استفاده ............................. 72
6-1-3-3- برنامه های کاربردی نمونه....................................................... 71
7-1-3-3- ابزارهای تست........................................................................... 72
2-3-3- گزارش بر مبنای WS-I 1.0.......................................................... 72
1-2-3-3- سناریوی مورد استفاده یک طرفه.............................................. 73
2-2-3-3- سناریوی مورد استفاده تقاضا / پاسخ همزمان....................... 73
3-2-3-3- سناریوی مورد استفاده تماس برگشتی اولیه ........................... 73
فصل 4 : انتخابهای تکنولوژی
1-4- انتخابهای تکنولوژی........................................................................... 76
2-4- مقدمه................................................................................................... 77
1-2-4- مزایای سرویس های وب............................................................... 77
2-2-4- معایب سرویس های وب................................................................ 78
3-4- لایه های پشته معماری سرویس گرا.................................................. 79
1-3-4- حمل و نقل...................................................................................... 79
2-3-4- پروتکل تبادل سرویس.................................................................... 80
3-3-4- شرح سرویس................................................................................. 81
4-3-4- سرویس.......................................................................................... 82
1-4-3-4- سرویس وب و J2EE............................................................... 82
2-4-3-4- چارچوب کاری احضار سرویس وب........................................ 83
3-4-3-4- برخی ملاکهای مؤثر در انتخاب چهارچوبها.............................. 84
5-3-4- فرآیند تجاری.................................................................................. 92
6-3-4- بایگانی سرویس.............................................................................. 94
1-6-3-4- درخواست مستقیم..................................................................... 94
2-6-3-4- انتشار جمعی ساده ................................................................... 94
3-6-3-4- استفاده از دایرکتوری................................................................ 95
7-3-4- سیاست........................................................................................... 95
1-7-3-4- استانداردهای نوظهور برای سیاست......................................... 96
8-3-4- امنیت............................................................................................... 97
9-3-4- معاملات......................................................................................... 102
1-9-3-4- استانداردهای نوظهور برای معاملات...................................... 103
- WS-Coordination............................................................................... 103
- WS-Transaction.................................................................................. 104
پشتیبانی نگهداری برای سرویس وب ........................................................ 104
10-3-3- مدیریت........................................................................................ 105
نتیجه گیری................................................................................................... 107
خلاصه ......................................................................................................... 108
پیوست........................................................................................................... 110
منابع.............................................................................................................. 112
فهرست مطالب
عنوان صفحه
پیش گفتار .................................................................................. A
چکیده........................................................................................ D
فصل 1 :
2-1-1- ویژگی های سیستم های مبتنی بر معماری سرویس گرا................. 9
3-1-1- آماده شدن برای معماری سرویس گرا........................................... 12
2-1- معرفی................................................................................................... 15
3-1- ویژگیهای سرویس و محاسبات سرویس گرا...................................... 17
4-1- نرم افزار به عنوان سرویس................................................................ 19
5-1- مفهوم معماری سرویس گرا................................................................ 20
6-1- معماری سرویس گرای مقدماتی.......................................................... 23
7-1- معماری سرویس گرای توسعه یافته................................................... 25
8-1- نیازمندیهای معماری سرویس گرا....................................................... 29
فصل 2 : معماری سرویس گرا
2-2- محرک های تجاری در رویکردی جدید............................................... 32
3-2- معماری سرویس گرا به عنوان یک راه حل......................................... 35
1-3-2- تجزیه و تحلیل و طراحی شی گرا.................................................... 35
2-3-2- طراحی بر مبنای جزء...................................................................... 36
3-3-2- طراحی سرویس گرا........................................................................ 37
4-3-2- طراحی بر مبنای واسط................................................................... 39
5-3-2- معماریهای برنامه های کاربردی لایه ای ....................................... 41
4-2- نگاهی دقیق تر بر معماری سرویس گرا.............................................. 42
1-4-2- جنبه های عملکردی......................................................................... 43
2-4-2- جنبه های کیفیت سرویس................................................................ 44
3-4-2- همکاری SOA................................................................................. 45
4-4-2- نقش ها در معماری سرویس گرا.................................................... 45
5-4-2- عملیات در معماری سرویس گرا..................................................... 46
6-4-2- سرویس در بافت SOA.................................................................. 48
7-4-2- سرویس در برابر اجزاء.................................................................. 49
5-2- مزایای معماری سرویس گرا............................................................... 51
1-5-2- بالا بردن دارایی های موجود.......................................................... 51
2-5-2- مجتمع سازی و اداره کردن راحت تر پیچیدگی ............................. 52
3-5-2- پاسخگویی بیشتر و خرید و فروش سریعتر .................................. 52
4-5-2- کاهش هزینه و افزایش استفاده مجدد............................................. 52
5-5-2- آمادگی در برابر حوادث.................................................................. 53
فصل 3 : معماری سرویس وب
2-3- سرویس وب چیست؟........................................................................... 56
3-3- مدل چند لایه مبتنی بر XML-Web service..................................... 56
1-2-3- برخی از ویژگیهای سرویس های وب............................................. 63
4-3- قابلیت عملکرد متقابل سرویس های وب.............................................. 65
1-1-3-3- انگیزه های مالی برای معماری سرویس گرا ............................. 66
2-1-3-3- خصیصه های معماری سرویس وب.......................................... 68
3-1-3-3- سازمان قابلیت عملکرد متقابل سرویس های وب....................... 69
4-1-3-3- خصوصیات گزارش.................................................................... 71
5-1-3-3- موارد کاربردی و سناریوی مورد استفاده .............................. 72
6-1-3-3- برنامه های کاربردی نمونه......................................................... 71
7-1-3-3- ابزارهای تست............................................................................. 72
2-3-3- گزارش بر مبنای WS-I 1.0........................................................... 72
1-2-3-3- سناریوی مورد استفاده یک طرفه............................................... 73
2-2-3-3- سناریوی مورد استفاده تقاضا / پاسخ همزمان......................... 73
3-2-3-3- سناریوی مورد استفاده تماس برگشتی اولیه ............................ 73
فصل 4 : انتخابهای تکنولوژی
2-4- مقدمه.................................................................................................... 77
1-2-4- مزایای سرویس های وب................................................................ 77
2-2-4- معایب سرویس های وب................................................................. 78
3-4- لایه های پشته معماری سرویس گرا................................................... 79
1-3-4- حمل و نقل....................................................................................... 79
2-3-4- پروتکل تبادل سرویس..................................................................... 80
3-3-4- شرح سرویس.................................................................................. 81
4-3-4- سرویس........................................................................................... 82
1-4-3-4- سرویس وب و J2EE................................................................. 82
2-4-3-4- چارچوب کاری احضار سرویس وب......................................... 83
3-4-3-4- برخی ملاکهای مؤثر در انتخاب چهارچوبها............................... 84
5-3-4- فرآیند تجاری................................................................................... 92
6-3-4- بایگانی سرویس............................................................................... 94
1-6-3-4- درخواست مستقیم....................................................................... 94
2-6-3-4- انتشار جمعی ساده .................................................................... 94
3-6-3-4- استفاده از دایرکتوری................................................................. 95
7-3-4- سیاست............................................................................................ 95
1-7-3-4- استانداردهای نوظهور برای سیاست.......................................... 96
8-3-4- امنیت................................................................................................ 97
9-3-4- معاملات.......................................................................................... 102
1-9-3-4- استانداردهای نوظهور برای معاملات........................................ 103
- WS-Coordination................................................................................ 103
- WS-Transaction................................................................................... 104
پشتیبانی نگهداری برای سرویس وب ......................................................... 104
10-3-3- مدیریت......................................................................................... 105
نتیجه گیری.................................................................................................... 107
خلاصه ......................................................................................................... 108
پیوست........................................................................................................... 110
منابع.............................................................................................................. 112
چکیده
یک معماری سرویس گرا اساساً یک مجموعه از سرویس ها است که این سرویس ها با هم ارتباط و تعامل دارند. این ارتباط می تواند به صورت ارتباط از طریق پیغام باشد یا اینکه دو یا چند سرویس با همکاری هم، کاری را انجام دهند. معماری سرویس گرا چیز جدیدی نمی باشد. در این پروژه به بررسی معماری سرویس گرا، به عنوان یکی از آخرین دستاوردهای صنعت مهندسی نرم افزار و تکنولوژیهایی قابل استفاده در این معماری، پرداخته می شود.