دوره‌ای که می‌تونه مسیر شغلیت رو عوض کنه! دوره‌ای که می‌تونه مسیر شغلیت رو عوض کنه!
🎯 ثبت نام
بستن تبلیغات
تسلط کامل بر سی‌شارپ با یک دوره پروژه‌محور

یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شی‌گرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفه‌ای و امکانات کامل!

مشاهده بیشتر
تسلط جامع بر MVC Core برای توسعه وب حرفه‌ای

یادگیری MVC Core از مبانی تا پیشرفته: شی‌گرایی، Routing، Entity Framework، امنیت، تست یونیت، Razor، Ajax، و پروژه‌های کاربردی! یک دوره کامل برای تسلط بر توسعه وب با ASP.NET Core. به صورت حضوری و آنلاین!

مشاهده بیشتر

معماری WCF

دوره های پیشنهادی

WCF –معماری

WCF از یک معماری لایه ای (لایه بندی شده) برخوردار بوده و با امکاناتی که ارائه می دهد، به برنامه نویس اجازه می دهد اپلیکیشن های توزیع شده ی (distributed apps) مختلفی را ایجاد کند. معماری این فریم ورک در زیر به تفصیل شرح داده شده است.

آموزش WCF

Contract ها

لایه ی contract درست در زیر لایه ی اپلیکیشن قرار دارد و حاوی اطلاعاتی مشابه یک قرارداد متعارف در دنیای واقعی می باشد که عملیات ارائه شده توسط سرویس و اطلاعاتی که در دسترس قرار می دهد را تعریف می کند (در واقع یک قرارداد بین کلاینت و سرویس است که تشریح می کند سرویس چه کارهایی را انجام می دهد). در کل چهار نوع contract وجود دارد که در زیر به شرح هر یک می پردازیم:

· Service contract –عملیات یا متدهایی که در service endpoint در دسترس هستند و در اختیار همگان قرار گرفته اند را توصیف می کند. به عبارت دیگر service contract عملیات قابل فراخوانی توسط کلاینت (توابع) که توسط سرویس ارائه می شوند را تشریح می کند. این قرارداد همچنین پروتکل های مورد استفاده در فرایند ارتباط را مشخص می کند.

· Data Contract –اطلاعاتی که توسط سرویس رد و بدل می شود را مشخص می کند. کلاینت و سرویس هر دو بایستی در خصوص داده های مورد تبادل توافق داشته باشند. می توان گفت که این contract یک توافقنامه ی رسمی بین کلاینت و سرویس هست که حاوی اطلاعاتی در مورد داده هایی است که بین این دو طرف رد و بدل می شود.

Message contract –WCF به منظور برقراری ارتباط از پیغام های SOAP بهره می گیرد. در WCF بیشتر زمان برنامه نویس صرف توسعه ی DataContract، سریال (serialize) کردن داده ها و غیره می شود. گاهی توسعه دهنده ملزوم به مدیریت فرمت پیغام های SOAP می باشد. برای این منظور فریم ورک WCF قرداد پیغام رسانی یا message contract را جهت تنظیم پیغام مطابق نیاز فراهم می کند. توسط message contract می توان ساختار بدنه و فرایند serialization را مدیریت کرد. مورد دیگر کاربرد message contract ارسال / دسترسی به اطلاعات موجود در header های SOAP می باشد. به صورت پیش فرض WCF خود ایجاد پیغام های SOAP را بر اساس سرویس DataContracts و OperationContracts دست می گیرد.

· Policy and binding (سیاست ها و اتصال) –قطعا پیش شرط هایی برای ارتباط با یک سرویس درنظر گرفته می شود. این شرط ها توسط policy&binding contract تعریف می شوند. یک کلاینت می بایست این قرارداد را رعایت کند.

لایه ی service runtime

لایه ی service runtime درست زیر لایه ی contracts قرار می گیرد. این لایه در واقع رفتارهای سرویس را در زمان اجرا مشخص می کند. رفتارهای متعددی مورد تنظیم قرار می گیرند که زیرمجموعه ی این لایه هستند و در زیر هریک را شرح می دهیم:

· Throttling behavior –تعداد پیغام های پردازش شده (به انجام رسیده) را مدیریت می کند.

· Error behavior –نتیجه ی رخداد خطا در زمان اجرای سرویس را تعریف می کند (مشخص می کند در صورت رخداد خطا به هنگام اجرای سرویس چه اتفاقی خواهد افتاد).

· Metadata behavior –قابلیت دسترسی (چگونه و چه زمانی) metadata برای سرویس گیرنده را مشخص می کند.

· Instance behavior –تعداد نمونه های سرویس که بایستی ایجاد شده و در اختیار سرویس گیرند (client) قرار بگیرد را مشخص می کند.

· Transaction behavior –در صورت رخداد هرگونه از کار افتادگی یا خرابی، امکان ایجاد تغییر در وضعیت تراکنش را فراهم می کند.

· Dispatch behavior –چگونگی پردازش پیغام توسط زیرساخت WCF را مدیریت می کند.

Concurrency behavior –توابعی که در طول برقراری ارتباط (تبادل اطلاعات) client / server همزمان با هم اجرا می شوند را کنترل می کند.

· Parameter Filtering –فرایند اعتبارسنجی (validation) پارامترهای ارسالی به متد را پیش از اینکه متد فراخوانده شود برعهده دارد.

لایه ی messaging

این لایه که از چندین channel تشکیل شده است، بیشتر با محتوای پیغام که بین دو endpoint رد و بدل می شود سروکار دارد (ساختار و فرمت مبادله ی پیغام بین سمت کلاینت و سرویس را تعریف می کند). چندین channel در کنار هم یک channel stack را تشکیل می دهد. در واقع channel stack یک پشته ی تبادل اطلاعات و برقراری ارتباط لایه بندی شده هست که از چند کانال تشکیل شده و هر یک وظیفه ی پردازش پیغام ها را بر عهده دارد. Channel stack از کانال های با نوع متفاوت تشکیل می شود که در زیر به دو نوع اصلی آن اشاره می کنیم:

· Transport channels –این نوع کانال ها در زیر پشته (stack) قرار گرفته و مسولیت ارسال و دریافت پیغام ها با استفاده از پروتکل های انتقال داده نظیر HTTP، TCP، Peer-to-Peer، Named Pipes و MSMQ را بر عهده دارند.

· Protocol channels – این کانال که در بالای پشته قرار دارند و تحت عنوان کانال های لایه ای نیز شناخته می شوند، با ویرایش پیغام ها پروتکل های wire-level را پیاده سازی می کنند. کانال نام برده پیغام را با خواندن و نوشتن header های اضافی بر سازمان برای پیام پردازش می کند.

لایه ی Activation (فعال سازی و اجزا) / hosting (میزبانی)

آخرین لایه ی معماری WCF مکانی است که سرویس ها در آن میزبانی می شوند یا به عبارتی برای دسترسی آسان کلاینت (سرویس ها) در آن مستقر و اجرا می شوند. برای میزبانی سرویس های WCF می توان از مکانیزم های زیر بهره گرفت:

IIS –مخفف واژگان (سرویس‌های اطلاعات اینترنتی) Internet Information Service می باشد. IIS از پروتکل HTTP استفاده کرده و مزایایی فروانی را ارائه می دهد. لازم به ذکر است که برای میزبانی سرویس wcf در IIS، برای فعال سازی کد سرویس (service code) نیازی به کد میزبان (host code) نیست چرا که کد سرویس به صورت خودکار فعال می شود. سرویس هایی که با این روش در اختیار کلاینت قرار می گیرد دارای قابلیت دسترسی بالا بوده و بسیار گسترش پذیر هستند. اما مزیت ویژه ی این روش این است که بیشتر سربار (overhead) مرتبط با میزبانی سرویس را مدیریت می کند.

· Windows Activation Service –به اختصار WAS نیز شناخته می شود. WAS یک کامپوننت از ویرایش 7.0 سرویس IIS هست که به شما امکان می دهد یک سرویس wcf را همان طور که IIS میزبانی می کند، میزبانی نمایید. میزبانی با این مکانیزم تبادلات (ارتباطات) مبتنی بر HTTP و غیر HTTP هر دو از طریق پروتکل های TCP یا Namedpipe امکان پذیر هستند. می توان گفت ویژگی برجسته ی میزبانی سرویس در WAS، عدم محدودیت به پروتکل HTTP و قابلیت استفاده از دیگر قراردادهای انتقال نظیر TCP، named pipes و MSMQ می باشد.

· Self-hosting –در این روش میزبانی، سرویس WCF توسط یک اپلیکیشن کنسول میزبانی می شود. در این روش همچنین انعطاف پذیری زیادی در زمینه ی انتخاب پروتکل های دلخواه و تنظیم scheme (ساختار) آدرس دهی مورد نظر در اختیار توسعه دهنده قرار می گیرد.

· Windows service –میزبانی سرویس WCF در Windows service، این مزیت را دارد که سرویس (به دلیل عدم نیاز به فعال سازی زمان اجرا) برای همیشه فعال بوده و به راحتی برای کلاینت قابل دسترس می باشد.

1395/05/11 2612 4
نظرات شما

نظرات خود را ثبت کنید...