شنبه, ۱۳ بهمن, ۱۴۰۳ / 1 February, 2025
مجله ویستا

معماری سرویس های وب


معماری سرویس های وب

سرویس های وب یکی از مهمترین تحولات اخیر در زمینه نرم افزار بوده که قطعا دستاوردهای فراوانی را در ارتباط با طراحی و پیاده سازی نرم افزار , بدنبال خواهد داشت

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

●مقدمه

بمنظور ایجاد برنامه های توزیع شده قدرتمند و انعطاف پذیر ، موارد متعددی وجود دارد که می بایست به آنها توجه گردد:

▪در مواردیکه قصد ارتبا ط بین منابع نرم افزاری وجود داشته باشد ، منابع می بایست بدرستی و بخوبی با یکدیگر مرتبط گردند( منابع مشخص و از یکدیگر متمایز گردند).

▪ارتباط بین برنامه ها می بایست متکی بر استانداردهای اینترنت باشد .

اینترفیس های ( بخش های مرتبط با استفاده کننده ) منابع نرم افزاری ، می بایست برای استفاده عموم منتشر و امکان دسترسی به تعاریف ▪اینترفیس بهمراه مستندات مربوطه وجود داشته باشد .

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

▪می توان از سرویس های نرم افزاری و منابع خارجی بمنظور طراحی و پیاده سازی نرم افزار مورد نظر خود استفاده کرد.

▪امکان ایجاد منابع نرم افزاری بیشتری بصورت ماژولار ، وجود خواهد داشت ( کیت های نرم افزاری با قابلیت استفاده مجدد ) .

▪هزینه تولید نرم افزار کاهش و بهره وری افزایش خواهد یافت .

▪مطرح شدن ایده عرضه نرم افزار بعنوان سرویس . بدین ترتیب در مقابل عرضه یک نرم افزار Stand-alone ، می توان از رویکرد نرم افزار بعنوان سرویس ، استفاده نمود.

●عناصر معماری مبتنی بر سرویس

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

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

معماری مبتنی بر سرویس ، وابسته به سه عنصر اساسی است که هر یک دارای جایگاه خاص خود می باشند : Service Provider ( ارائه دهنده سرویس ) ، Service consumer ( مصرف کننده سرویس ) و Service broker ( کارگزار سرویس ) . .

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

●ارتبا ط بین وظایف سه گانه

عناصر سه گانه اشاره شده در معماری مبتنی بر سرویس ، با یکدیگر مرتبط تا زمینه تحقق عملیات زیر فراهم گردد :

▪عرضه سرویس .

ارائه دهندگان سرویس ، سرویس ها ی خود را برای یک کارگزار سرویس ، عرضه می نمایند ( ثبت در دفترچه آدرس ) . اطلاعات ارائه شده شامل : تعریف اینترفیس سرویس ، محل ارائه دهندگان سرویس ، سایر اطلاعات حمایتی و یا مستندات ضروری خواهد بود.

▪یافتن سرویس .

مصرف کنندگان ، سرویس ها ی مورد نیاز خود را با کمک یک کارگزار ، پیدا خواهند کرد .

▪ارتباط به سرویس .

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

عملیات یافتن و نسبت دهی سرویس ها می تواند بصورت پویا انجام گیرد . بدین ترتیب برنامه ها قادر خواهند بود بصورت پویا خود را پیکربندی نمایند. مثلا" اگربرنامه ای تشخیص دهد که مدت زمان پاسخ از یک ارائه دهنده سرویس ، زمانی غیر معقول است ، می تواند در زمان اجراء ، تصمیم بر استفاده از یک ارائه دهنده سرویس دیگر نماید .

●معماری سرویس های وب و معماری مبتنی بر سرویس

عناصر اساسی در معماری سرویس وب عبارتند از :

▪ارائه دهنده سرویس وب .

گره ای در شبکه که مسئولیت میزبان نمودن یک سرویس وب را برعهده خواهد داشت .

▪مصرف کننده سرویس .

گره ای در شبکه که مسئولیت میزبان نمودن هر سرویس گیرنده ای را که قادر به ارتباط با استفاده از HTTP باشد را برعهده می گیرد. مرورگرها ، برنامه های کنسول و برنامه هائی با رابط کار گرافیکی سنتی ، نمونه هائی از برنامه های سرویس گیرنده می باشند.

▪کارگزار سرویس وب.

گره ای در شبکه که مسئولیت میزبان نمودن یک ریجستری سراسری از تمامی سرویس های وب در دسترس را برعهده خواهد داشت .( نظیر یک کتاب آدرس جامع ) .

تمامی گره های فوق ، قادر به ارتباط با یکدیگر از طریق شبکه های مبتنی بر پروتکل TCP/IP می باشند . در سرویس های وب ، سه گره تعریف شده در معماری مبتنی بر سرویس ، متناظر با عناصر سرویس های وب خواهند بود:

کارگزار سرویس ، مسئولیت میزبان نمودن UDDI)Universal Description,Discovery and Integration ) را برعهده خواهد داشت .

ارائه دهنده سرویس ، مسئولیت عرضه سرویس های وب از طریق صفحات ASP.NET با انشعاب asmx . را برعهده خواهد داشت .

مصرف کننده سرویس ، قابلیت برقراری ارتباط از طریق HTTP ویا SOAP)Simple Object Access Protocol) را دارا می باشد .

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

●ارائه دهنده سرویس

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

●سرویس دهنده وب

یک ارائه دهنده سرویس می بایست حداقل شامل یک گوش دهنده ( listener ) پروتکل باشد . برای سرویس های وبی که توسط فریمورک دات نت و یا ویژوال استودیو دات نت ، پیاده سازی می گردند ، گوش دهنده پروتکل می بایست یک HTTP listener باشد . با توجه به اینکه یک ارائه دهنده سرویس قادر به میزبان نمودن چندین سرویس وب خواهدبود ،ارائه دهنده سرویس ،می بایست امکان هدایت مناسب یک درخواست به سرویس وب مناسب را دارا باشد . ( قابل مقایسه با سرویس RPCCC) Remote Procedure Call Subsystem)، که مسئولیت پاسخگوئی به درخواست های وارده DCOM وهدایت آنان به یک سرویس دهنده مناسب COM است) .مصرف کنندگان ناشناخته سرویس وب ، قادر به دستیابی به یک ارائه دهنده سرویس می باشند . بنابراین لازم است ، سرویس دهنده وب سرویس های پایه امنیتی را حداقل در سطح پروتکل، ارائه نماید. IIS ، که یک سرویس دهنده وب است ، سرویس های مورد نیاز یک سرویس وب را ارائه می نماید :

▪IIS یک HTTP listener است

▪IIS با استفاده از معماری ISAPI ، می تواند بعنوان یک gateway در رابطه با سرویس های وب رفتار نموده و علاوه بر میزبانی از سرویس های وب متعدد ، زمینه هدایت صحیح آنان را نیز فراهم نماید.

▪IIS زیرساخت قابل ملاحظه ای در رابطه با امنیت را ارائه می نماید .

●IIS و سرویس های وب

یک سرویس دهنده وب نظیر IIS ، قادر به فراخوانی یک سرویس از جانب یک سرویس گیرنده با استفاده از گزینه های متعددی است . سرویس دهنده وب قادر به فعال نمودن ( اجراء ) یک برنامه CGI)Common Gateway Interface) ، اجرای یک مفسر اسکریپت بمنظور برخورد با صفحات ASP و یا فراخوانی یک برنامه ISAPI است .زمانیکه IIS همراه با CLR فعالیت می نماید ، از یک فیلتر ISAPI بمنظوربررسی درخواست هائی در ارتباط با صفحات با انشعاب asmx استفاده و در ادامه یک میزبان زمان اجراء را فعال می نماید . میزبان زمان اجراء ، کد مربوط به سرویس وب را که توسط فریمورک دات نت پیاده سازی شده است ، اجراء خواهد کرد.

●مصرف کننده سرویس

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

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

●مکان یابی سرویس : قبل از امکان استفاده از یک سرویس وب ،مصرف کننده می بایست قادر به یافتن آن باشد . یکی از راهکارهای موجود در این زمینه درج کد بصورت دستی ( برخوردی کاملا" ایستا ) در مصرف کننده سرویس وب و در هنگام طراحی است .در چنین مواردی آدرس سرویس ارائه شده بصورت مستقیم در برنامه مصرف کننده سرویس درج خواهد شد . یکی دیگر از راهکارهای موجود در این زمینه ، امکان یافتن پویای یک سرویس وب توسط مصرف کننده سرویس وب و در زمان اجراء است . بدین ترتیب ، مصرف کننده سرویس وب دارای انعطاف لازم در خصوص انتخاب بین سرویس های وب رقیب با عملکرد مشابه و بر اساس ویژگی هائی خاص نظیر قیمت و کارآئی ، خواهد بود . روش استاندارد برای یافتن سرویس های وب ، تشریح سرویس و خدمات ارائه شده توسط آنان ، استفاده از یک ریجستری UDDI است . ( Universal Description,Discovery, and Integration )

●پروکسی ها : در زمان پیاده سازی یک مصرف کننده سرویس وب ، پیاده کنندگان می توانند زمان خود را صرف افزایش بهره وری نموده و خود را درگیر موارد زیر ننمایند .

▪فعالیت و در گیر شدن در ارتباط با پروتکل های زیربنائی

▪پارسینگ بایت ها بمنظور استخراج داده

▪بررسی صحت و اعتبار داده های ورودی ( دریافتی )


شما در حال مطالعه صفحه 1 از یک مقاله 2 صفحه ای هستید. لطفا صفحات دیگر این مقاله را نیز مطالعه فرمایید.