رادکام
WCF از سه بخش اصلی تشکیل می شود، 1- خود سرویس، 2-میزبان سرویس و
3- استفاده کننده از سرویس
اهم اجزایی که برای پیاده سازی و پیکر بندی این سه بخش نقش ایفا میکنند نیز شامل
موارد زیر است:
1) پیغام ( Message) : پیغام همان عنصر برقراری ارتباط بین سرویس
دهنده و سرویس گیرنده است، پیغام از بخش های مختلفی مانند بدنه پیام و ...
تشکیل شده است
2) نقطه سرویس رسانی یا سرویس دهی ( End Point ) : نقطه سرویس دهی همان
آدرسی است که پیغام را به آن ارسال و یا از آن دریافت می کنیم. خود نقطه
سرویس دهی نیز از سه بخش اصلی تشکیل شده است شامل: 1) Address : که
مقصد و آدرس دقیقی که پیام ها به آن آدرس ارسال می شوند را مشخص می کند. 2)
Binding : نحوه اتصال و برقراری ارتباط ، در اصل یعنی چگونگی دسترسی به
سرویس را مشخص می کند. بنابراین Binding در یک دید کلی ، مجموعه ای از تنظیمات است
که قوانین و پروتکل های انتقال اطلاعات ، فرمت کدگذاری پیغام ها و نیز قوانین و
پروتکل های مربوط به امنیت را تعریف می کند. 3) Contract : مجموعه از از
توابع و متد ها هستند که امکانات و قابلیت هایی که Binding در اختیار
سرویس دهنده و یا سرویس گیرنده قرار می دهد را مشخص می کند.
3) میزبان (Host) : همان میزبانی سرویس است ، که به روش های مختلف و در بستر های
گوناگونی قابل اجرا است.
4) سرویس گیرنده ( Client ) : یک برنامه ایست که برای استفاده از از سرویس
نوشته شده است ، خود سرویس گیرنده نیز باید توسط یک بستر و یا سیستم عاملی میزبانی
شود.
5) کانال ( Channel) : کانال یک راهرو و مسیر ارتباطی است که از طریق آن
برنامه سمت سرویس گیرنده می تواند با خود سرویس تعامل داشته باشد.
6) SOAP : قرار داد و پروتکل دسترسی به اشیا نام گذاری شده است و در اصل
بستر با قرار دادی برای رد و بدل کردن پیام هایی با قالب XML است که خود از دو بخش
هدر و بدنه تشکیل شده است.
یکی ار مواردی که در پاراگراف بالا توضیح دادیم اتصال یا همان
Binding در WCF بود. اتصال یکی از اساسی ترین بخش های WCF است که باید در
انتخاب روش مرتبط با آن دقت لازم را داشته باشیم. Binding نحوه ارتباط
و اتصال سرویس گیرنده ( همان Client ) را با سرویس دهنده WCF مشخص می کند، در اصل
همان پروتکل های مربوط به نحوه ارتباط کلاینت و سرور را تعریف می کند. binding
ها از انواع مختلف رمزنگاری ها برای ارسال داده ها روی بستر
اینترنت استفاده می کنند. بنابراین Binding یک راه ارتباطی بین کاربر و
سرویس بر اساس نیاز های تعریف شده کاربر است.
در این بخش اشاره ای به روش های اتصال در WCF خواهیم داشت:
1) BasicHttpBinding : ابتدایی ترین و یا ساده ترین روش اتصال در WCF
است، به عبارت دیگر همان سرویس وب پایه است. و زمانی مورد استفاده قرار
میگیرد که بخواهیم از ASP.Net Web Service (ASMX-based Web services)
برای ارتباط استفاده کنیم. در این روش از پروتکل های Http و Https برای اتصال
استفاده می شود. و داده ها به صورت xml و یا Text رد و بدل می
شوند. این روش از ملاحظات امنیتی پایه استفاده می کند. این روش سازگار نیز
است.
2) WSHttpBinding : شاید بتوان گفت که این نحوه اتصال تکامل یافته
BasicHttpBinding است. این روش اتصال امنیت بیشتری نسبت به
BasicHttpBinding دارد و از Session قابل اعتماد و امن با استفاده از
امنیت فراهم شده در SOAP پشتیبانی می کند.
3) NetTcpBinding : این نحوه اتصال از پروتکل TCP استفاده می کند و ارتباط
داده ها بین لایه ها به صورت Binary است و امنیت بیشتر تبادلات و ارتباطات
لایه ها و ما بین سرویس گیرنده و سرویس دهنده را فراهم می کند.
4) NetPeerTcpBinding: این نحوه اتصال از پروتکل TCP برای ارتباط استفاده می کند ،
و از ملاحظات امنیتی مرتبط با SOAP و همچنین از تراکنش ها ( Transactions
) پشتیبانی می کند. این نوع اتصال در زمان نیاز برای برقراری ارتباط میان کامپیوتر
ها در سرویس های نظیر به نظیر (peer to peer) فراهم می شود.
5) NetNamedPipeBinding: در این نوع اتصال ارتباط داده ها بین لایه ها به
صورت Binary است ، و از امنیت کامل Soap برای ارتباطات استفاده می کند،
از WS-ReliableMessaging برای تایمن امنیت ارسال و دریافت پیام ها روی شبکه
استفاده میکند.
6) WSFederationHttpBinding: این اتصال از WS-Federation استفاده می کند . زمانی که
نیاز است یک Identity بین دامنه های مختلف به اشتراک گذاشته
شوند، WS-Federation وارد عمل می شود.
7) WSDualHttpBinding: این نوع اتصال مشابه WSHttpBinding می باشد و برای سرویس های
وبی مورد استفاده قرار میگیرد که نیاز به پشتیبانی از قراردادهای دوگانه (
duplex contracts ) و اجرا ، دارند .duplex یک الگوی پیام است که توسط کاربر و
سرویس برای تبادل پیام از طریق کال بک استفاده می شود. در این نوع اتصال Session
امن به صورت پیش فرض فعال است.
8) NetMsmqBinding: این نوع اتصال ، ارتباط میان سرویس دهنده ها و سرویس گیرنده ها
را با استفاده از صف بندی فراهم می کند.یعنی این نوع از اتصال به ما ارتباط صف شده
امن و قابل اعتماد برای دستگاه متقابل می دهد. این نوع اتصال از پروتکل MSMQ
برای تبادلات استفاده می کند.
در wcf چهار بخش عمده داریم که میتوان آن ها را به عنوان
لایه در نظر گرفت. که این معماری یک ساختار سرویس گرا را برای برنامه
نویسان فراهم کرده است. چهار لایه اشاره شده به این ترتیب است:
1) لایه قرار داد ها
2) لایه زمان اجرای سرویس
3) لایه پیام رسانی
4) لایه فعال سازی و میزبانی
حال توضیحاتی در رابطه با لایه های اشاره شده ارایه می کنیم:
1) لایه قرار داد ها ( Contracts ):
این لایه در بالاترین سطح لایه ها قرار دارد، منظور این است اولین لایه ای
که با آن در ارتباط هستیم لایه قرار داد هاست. این لایه در اصل
عملکرد سرویس و نوع اطلاعاتی که در اختیار سرویس گیرنده ها قرار می
دهد را مشخص می کند. شاید بتوان گفت که لایه قرار داد ها ، جنبه های مختلف
سیستم پیام را تعریف می کنند. و در اصل لایه قرار داد توصیف نحوه انجام کار
سرویس است.
خود لایه قرار داد نیز از چهار لایه تشکیل شده است:
1-1) Service Contract:
منظور سطحی از لایه در این بخش همان کلاس ها هستند. قرارداد سرویس
متدهایی که سرویس ایجاد می کند و در دسترس سرویس گیرنده ها قرار میدهد را
مشخص میکند. به عبارت دیگر قرار داد سرویس توابعی را که توسط سرویس گیرنده
فراخوانی می شود را ارایه می کند. قرارداد سرویس همچنین پروتکل های مورد
استفاده در نخوه ارتباط را نیز مشخص می کند.
به عبارتی دیگر قرارداد سرویس همه عملیاتی که توسط سرویس اجرا می شود را
توضیح می دهد. قرار داد سرویس می تواند یک اینترفیس یا یک کلاس باشد.
استفاده از اینترفیس به دلیل امنیت آن به جای کلاس بیشتر مورد توجه قرار می
گیرد. البته استاندارد پیاده سازی قرار داد سرویس نیز همین است که از
اینترفیس استفاده شود.
برای اینکه مشخص شود که یک کلاس یا اینترفیس، قرار داد سرویس است از
یک نامگذاری مشخصی استفاده می شود. ( البته کلیه قرار داد های داخل WCF از
نامگذاری های مشخصی استفاده می کنند، که هر کدام را در بخش خود نام خواهیم
برد.) منظور از نام گذاری صفتی است که به کلاس می دهیم که بدین شکل
انجام می شود:
منابع:
WCF Tutorial
Developing Service-Oriented Applications with WCF
7,656بازدید
دیدگاه کاربران
هنوز دیدگاهی ثبت نشده است.
شما میتوانید درباره این مقاله، دیدگاه خود را ثبت کنید.