در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم
WCF پیش از این با اسم رمز Indigo شناخته شده بود و جزیی از نسخه 3 فریمورک داتنت بهشمار میرفت، یکی از ویژگی اصلی فریمورک داتنت نسخه 3 بود که دسامبر 2006 معرفی شد و در سیستمهای عامل ویندوز (مشتری، سرور و سکوهای موبایل) عرضه شد. داتنت نسخه 3 در ویندوز ویستا و ویندوز سرور 2008 وجود دارد و برای ویندوزهای اکسپی و 2003 مجانی قابل دریافت است.
WCF مدلهای ارتباطی مختلف برنامهنویسی که در داتنت 0/2 پشتیبانی میشد را بهشکلی یکپارچه و بهیک صورت در آورده است. ویرایش داتنت2 که در نوامبر 2005 منتشر شد، برای تطابق بالا، APIهای جداگانهای را برای ارتباطات مبتنی بر SOAP(وبسرویسها)، ارتباطات باینری میان برنامههای اجرایی در ماشینهای ویندوزی (راهدور داتنت)، ارتباطات تراکنشی (تراکنشهای توزیعی) و ارتباطات آسنکرون (صفهای پیغام) فراهم کرد. بهکمک WCF میتوان قابلیتهای این مکانیسمهای جداگانه را در مدلی یکتا، عمومی و متداول بهنام مدل برنامهنویسی سرویسگرا ارائه کرد.
WCF برای ارتباط بین پروسسها میتواند از پیغامهای مبتنی بر SOAP استفاده کند، در نتیجه برنامههای مبتنی بر WCF میتوانند با تمام برنامههای دیگری که از پروتکل SOAP استفاده میکنند، ارتباط برقرار کنند. وقتی برنامههای مبتنی بر WCF با برنامههای دیگری که بر پایه WCF نیستند، ارتباط برقرار میکنند، در پروتکل SOAP از پیغامهایی بهفرمت XML استفاده میشود، اما زمانی که با یک برنامه دیگر که بر پایه WCF است، ارتباطی برقرار میشود، پیغامهای مبتنی بر SOAP میتوانند بهصورت دودویی (باینری) بهینه شوند. هر دو فرمت مطابق با ساختمان داده Infoset معرفی شده در SOAP فعالیت میکنند.
WCF از سیستم رمزبندی قابل اتصال استفاده میکند. بهاین معنی که توسعهدهندگان میتوانند رمزگذارهای خود را استفاده کنند. با توزیع داتنت5/3 در نوامبر 2007، مایکروسافت رمزگذاری را به WCF افزود که سریالکردن جیسون (نگارش شیی جاوااسکریپت) را نیز پشتیبانی میکرد. بهکمک این اقدام، سرویسهای WCF میتوانند درخواستهای AJAX را از طریق صفحههای وب دریافت و یا ارسال کنند.
یک سرویس WCF از سه بخش تشکیل شده است: کلاس سرویس، که سرویس مورد نظر ما را پیادهسازی میکند، محیط میزبان برای میزبانی سرویسها، و ویک یا چندین نقطه مرزی2 که گیرندگان سرویس از آن استفاده میکنند. تمامی ارتباطات در WCF با نقاط مرزی اتفاق می افتد، هر نقطه مرزی یک قرارداد3 دارد، که به یک متد از کلاس سرویس اشاره دارد که نقطه مرزی حق استفاده از آن را خواهد داشت، هر نقطه مرزی ممکن است تعداد زیادی متد متفاوت را نشان دهد. اغلب نقاط مرزی یک اتصال4 و آدرس میزبان سرویس را معرفی میکنند که نشان میدهد، سرویسگیرنده چگونه و کجا با سرویس ارتباط برقرار کند.
WCF یک سری خدمات فعالسازی ویندوزی5 را با خود بههمراه دارد که میتوانند برای میزبانی سرویسهای مبتنی بر WCF استفاده شوند. به عبارت دیگر سرویسها میتوانند توسط IIS یا در هر پروسسی فعال باشند بهشرطی که از کلاس ServiceHost استفاده کنند، میزبانی شوند. سرویسها میتوانند خود میزبان خود باشند، حال برنامه، کنسولی باشد و یا یک برنامه ویندوزی.
مشتری برای ارتباط با سرویس WCF میتواند از هر مکانیزمی بر پایه RPC استفاده کند بهطوریکه سرویس در آن میتواند بهفرم فراخوانی یک متد صدا زده شود. با استفاده از ارتباطهای سنکرون، هر فراخوانی سرویسی بلوکه میشود و تا زمانی که پردازش سرویس از سوی سرویسدهنده بهپایان برسد، اجرای درخواست مشتری بهتعویق میافتد. مشتری از طریق ایجاد یک شی پراکسی به نقطه مرزیسرویس متصل میشود و تجرید (آبستره) آن سرویس را بهفرم یک شی دریافت میکند. تمام فراخوانیهای متدهایی که در شی پراکسی وجود دارند به سرویس منتقل شده و پراکسی نتیجه را به فراخواننده باز میگرداند.
ابزارهایی که بههمراه کیت توسعه نرمافزار6 (SDK) فریمورک داتنت وجود دارند، میتوانند WSDLها را بخوانند و کلاسهای پراکسی سمت مشتریای بسازند که با WCF کار کند. چنین کلاسهایی سریالکردن، رفع خطا و گرفتن استثناها و انتقال داده را به سرویسدهنده و از سرویسدهنده بسیار آسان میکنند.
WCFهمچنین از فراخوانیهای غیربلوکی (آسنکرون) میان مشتری و سرویس نیز پشتیبانی میکند. یک انتخاب استفاده از صفهای پیغام بهعنوان انتقال، رسید و دریافت پیغامهاست. (بهیاد داشته باشید که استفاده از صفهای تبادل پیغام تغییری بر مدل PUT/GET در برنامهنویسی نیست.
حتی اگر از صفهای ثابت استفاده شود، مدل برنامهنویسی هنوز بر مبنای کلاسهای پراکسی است.) مکانیزم دومی که در ارتباطهای آسنکرون از آنها پشتیبانی میشود، از طریق چندنخی است. این مکانیزم برای خود توضیح مفصلی دارد که در این مطلب نمیگنجد.
REST Support in WCF از داتنت نسخه 5/3 به بعد، WCF از نوع ارتباطات REST نیز پشتیبانی میکند.
توسعهدهندگان میتوانند با مشخص کردن الگوهای آدرس7 در قراردادهای عملیات، به متدها اجازه دهند بر مبنای درخواستهای مبتنی بر URL فراخوانی شوند. پارامترهایی که از URLها میرسند، بهطور خودکار قابلیت تبدیل شدن و پاس داده شدن به آرگومانهای متد را دارند. جیسون و دادههای ساده XML نیز سریالمیشوند. همچنین WCF میتواند متدهایی با مقدار بازگشتی باینری (مثلا یک فایلJPG)) داشته باشد.
منبع:
http://en.wikipedia.org/wiki/WCF
پینوشتها
Windows Communication.1
Foundation
Endpoints.2
Contract.3
Binding.4
Windows Activation Service.5
Software Development Kit.6
URL Templates.7
در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم
گزارش «جامجم» درباره دستاوردهای زبان فارسی در گفتوگو با برخی از چهرههای ادب معاصر
معاون وزیر بهداشت: