پرش به محتوا

دات نت از راه دور

از ویکی‌پدیا، دانشنامهٔ آزاد

دات نت از راه دور یک رابط برنامه نویسی کاربردی مایکروسافت برای ارتباط بین پردازشی است که در سال 2002 میلادی در نسخه 1.0 چارچوب دات نت منتشر شد. این یکی از سری فناوری های مایکروسافت است که در سال 1990 با اولین نسخه Object Linking and Embedding برای ویندوز 16 بیتی آغاز شد. در مراحل میانی توسعه این فناوری‌ها از مدل شیء مؤلفه (انتشار در 1993) ، Distributed Component Object Model که در سال 1997 منتشر و بعدا به اکتیوایکس تغییر نام داد، و مدل شیء مؤلفه ارتقاء یافته با Microsoft Transaction Server، در سال 2000 منتشر شد استفاده شده است.[۱] در حال حاضر Windows Communication Foundation که بخشی از چارچوب دات نت 3.0 است جایگزین دات نت از راه دور است.

دات نت از راه دور مانند فناوری‌های مشابه کوربا و فراخوانی متد راه دور جاوا (RMI)پیچیده است، اما ماهیت آن ساده است. با کمک عامل های سیستم عامل و شبکه، پردازه‌ی کلاینت پیامی را به پردازه‌ی سرور ارسال می کند و پاسخ را دریافت می کند. [۲] [۳]

نمای کلی

[ویرایش]

دات نت از راه دور این امکان را به برنامه می‌دهد تا یک شئ (که به آن شئ قابل دسترسی از راه دور گفته می‌شود) را در گستره هایی از راه دور قابل دسترس کند . این گستره ها می تواند شامل دامنه های برنامه ها، پردازه ها و حتی کامپیوتر های دیگر متصل به یک شبکه باشد . اجرا کننده دات نت از یک شنونده روی دامنه برنامه سرور میزبانی می کند. در برنامه کلاینت هر درخواستی به شئ قابل دسترسی از راه دور از طریق اجراکننده دات نت از راه دور مخابره می شود. این کار تحت شئ ای به نام کانال Channel انجام می شود که روش اصلی انتقال این پیام را در بر می گیرد. این روش ها می تواند از نوع جریان‌ TCP ، HTTP و لوله های نامگذاری شده باشد. به همین دلیل، با توجه به در بر گرفتن پروتکل های ارتباطی توسط شئ Channel ، ایجاد یک کانال مناسب می تواند این امکان را به برنامه بدهد که بدون کامپایل کردن مجدد، تحت این پروتکل ها اطلاعات را مخابره کند. همچنین خود اجراکننده دات نت از راه دور وظیفه سریال سازی و مارشال کردن داده ها را برای کلاینت و سرور انجام خواهد داد. [۴]

دات نت از راه دور یک شئ قابل دسترسی از راه دور را به کلاینت یک برنامه ارجاع می دهد که کلاینت می تواند آن را به گونه ای مورد استفاده قرار دهد که انگار از ابتدا در همانجا بوده است. با این حال کد واقعی در سرور اجرا می شود. یک شی از راه دور توسط URL های فعال سازی شناسایی می شود و با اتصال به URL قابل استفاده می شود.[۵] زمانی که سرور، کانال مورد نیاز برای ارتباط با شئ از راه دور را ثبت می کند اجرا کننده دات نت از راه دور یک شئ شنونده را ایجاد می کند. در کلاینت، دات نت از راه دور یک واسطه proxy ایجاد می کند که به جای شئ قابل دسترسی از راه دور تلقی می شود. عملکرد شئ قابل دسترسی از راه دور را پیاده سازی نمی کند فقط یک بستر برای استفاده در اختیار می گذارد. بنابراین، بستر راه دور باید قبل از رابط عمومی شئ قابل دسترسی از راه دور را بداند. در هر فراخوانی توابع قابل دسترسی از راه دور‌‌‌، اطلاعات این فراخوانی به همراه پارامتر های شئ مورد استفاده به یک جریان بایت سریال می شود و از طریق یک شئ Channel که وابسته به پروتکل ارتباطی است منتقل می شود. [۵] در سمت سرور، پروکسی جریان را از سینک می‌خواند و از طرف کلاینت با شی قابل دسترسی از راه‌ دور تماس می‌گیرد. نتایج سریال می شوند و از طریق سینک به کلاینت منتقل می شوند، جایی که پروکسی نتیجه را می خواند و آن را به برنامه انتقال می دهد. [۵] اگر شئ راه دور نیاز به برقراری تماس با یک شئ کلاینت برای برخی از خدمات داشته باشد، برنامه سرویس گیرنده باید آن را به عنوان قابل دسترس از راه دور علامت گذاری کند و یک شنونده میزبان از راه دور داشته باشد.[۵] سرور می تواند از طریق یک کانال دیگر یا از طریق کانال موجود به آن متصل شود اگر اتصال زیرین از ارتباط دو طرفه پشتیبانی می کند. [۵]یک کانال می‌تواند از تعدادی شئ کانال مختلف ایجاد شده باشد که ممکن است هر کدام از انتقال‌های ناهمگن مختلف تشکیل شده باشند. بنابراین، دسترسی و فراخوانی از راه دور می‌تواند در سیستم‌هایی که توسط شبکه‌های ناهمگن، از جمله اینترنت، از هم جدا شده‌اند، کار کند.[۵] ایمنی نوع متغیر ها توسط CTS و اجرا کننده دات نت از راه دور کنترل می‌شود. فراخوانی اشیا از راه دور ذاتاً سنکرون هستند. تماس های آسنکرون را می توان با استفاده از کتابخانه های مدیریت ریسه‌ها پیاده سازی کرد. احراز هویت و کنترل دسترسی را می توان با استفاده از کانال های سفارشی مدیریت کرد. همچنین می‌توان اشیاء با قابلیت دسترسی از راه دور را در IIS میزبانی کرده و سپس سیستم مدیریت دسترسی را با استفاده از سیستم احراز هویت IIS برای کلاینت ها پیاده سازی کرد. [۶]

منابع

[ویرایش]
  1. Software Technology Roadmap (2001). "Component Object Model and Related Capabilities". Carnegie-Mellon Software Engineering Institute. Archived from the original on 2008-05-15.
  2. McLean, Scott; Naftel, James; Kim, Williams (2002). Microsoft .NET Remoting. Microsoft Press. ISBN 9780585476445.
  3. Rammer, Ingo; Szpuszta, Mario (2005). Advanced .NET Remoting. Apress. ISBN 9781590594179.
  4. ".NET Remoting Overview". Retrieved 2007-10-23.
  5. ۵٫۰ ۵٫۱ ۵٫۲ ۵٫۳ ۵٫۴ ۵٫۵ ".NET Remoting Architecture". Retrieved 2007-10-23.
  6. "Security". MSDN. Retrieved 2007-10-23.

پیوند به بیرون

[ویرایش]

Official wbsite

Migrating from .Net Remoting to WCF