معرفی تکنولوژی RMI یا Remote Method Invocation

تکنولوژی RMI

معرفی تکنولوژی RMI:

تکنولوژی RMI به منظور دسترسی به اشیا راه دور (remote object) و همچنین انتقال اشیا در داخل یک شبکه (serializable object) مابین سرور و کلاینت توسعه پیدا کرد . نقطه قوت این تکنولوژی سرعت بسیار بالای انتقال اطلاعات در مقایسه با رقیبان خود از جمله وب سرویس است.

نقطه ضعفش در این است که برنامه هر دو طرف یعنی کلاینت و سرور باید هم زبان و جاوایی باشند.

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

اما در RMI اشیا به دو صورت مورد دستیابی قرار می گیرند :

  • remote access by reference
  • remote access by value

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

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

اما حالتی پیش می آید که ما نیاز داریم از هر دو استراتژی استفاده کنیم یعنی بخشی از شیی به صورت value مورد دستیابی قرار گیرد و بخشی دیگر را با بقیه کلاینت ها در اشتراک بگذاریم که در این حالت تکنولوژی CORBA که یکی از تکنولوژی های برتر و رقیب سرسختی برای RMI است راه حل های خیلی عالی دارد ولی در RMI ما نیاز به طراحی یک شیی واسط دیگری داریم بنام Proxy pattern یا proxy object که در واقع نقش ماسک رو برای شیی اصلی ما بازی می کند .

 

برای مطالعه بیشتر در این زمینه به ادامه ی مطلب مراجعه کنید.


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

مطالب مرتبط

1 نظر

نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *