همان طور که از نام این اصطلاح مشخص می شود،RMI مکانیسمی در اختیار برنامه نویسان جاوا قرار می دهد که می توانند از طریق آن متد اشیای گوناگون را بر روی یک ماشین مجازی (JVM ) راه دور اجرا کنند. مکانیسم های فراخوانی راه دور متفاوتی در دنیای نرم افزار ایجاد شده اند،اما RMI برخلاف بسیاری از آنها محدود به انواع داده ای اولیه یا ساختار هایی متشکل از داده های ساده نیست و به کمک آن می توان اشیای نرم افزاری را به تمامی همانند یک پارامتر عبور داد یا باز گرداند.
این ویژگی از RMI یک مکانیسم منحصر به فرد می سازد. چنین خاصیتی به این معنی است که یک برنامه نویس جاوا می تواند به کمک RMI ، کدهای جدیدی را در شبکه انتقال دهد و در ماشین های مجازی راه دور به صورت دینامیک آن ها را اجرا نماید. بدین ترتیب برنامه نویسان جاوا در زمان برنامه نویسی سیستم های گسترده،آزادی عمل زیادی به دست خواهند آورد.در یک محیط گسترده، کلاینت های RMI می توانند به نسخه های جدید سرویس های جاوا دسترسی داشته باشند و نیازی به توزیع کردن برنامه به کلاینت ها نخواهد بود. این ویژگی همانطور که در محیط های شبکه محلی اجرا می شود،در محیط وب نیز قابل اجرا است.
در مکانسم RMI ،از ویژگی رجیستری هم پشیتبانی می شود. کلانیت های RMI با مراجعه به رجستری هم پشتیبانی می شود. کلاینت هایی که از سرویس مشخصی استفاده می کنند،می توانند با مراجعه به رجیستری RMI ،به آخرین نسخه سرویس دسترسی یابند. در صورت نیاز به کلاس جدید،می توان آن را از طریق وب سرور بارگذاری کرد. RMI دارای ویژگی های دیگری علاوه بر آنچه در بالا به آن اشاره شد،نیز هست . پردازش راه دور و تقسیم بار پردازنده ها نمونه هایی از قابلیت های ساده RMI تلقی می شوند. RMI به جهت قابلیت انعطاف و سازگاری زیاد،از طرف برنامه نویسان به سرعت به عنوان یک ابزار مهم برای توسعه سیستم های گسترده،پذیرفته شد. اما زمانی که برنامه هایی به زبان های مانند c\c++ یا زبان های دیگری(غیر جاوا)بخواهند باRMI ارتباط بیابند،مشکلاتی ایجاد خواهد شد.
در واقع RMI تکنولوژی ویژه جاوا با نرم افزارهایی که به زبان هایی غیر جاوا توسعه یافته اند استفاده کرد. به همین دلیل ،استفاده از RMI به همان سرعتی رواج یافت،رو به کاهش گذاشت.در واقع چنین استدلال می شد که در دنیای امروز روز به روز بر مواردی که نیاز به ارتباط دادن نرم افزارهایی که با تکنولوژی هایی متفاوت توسعه یافته اند،بیشتر می شود که در صورت استفاده از RMI ،امکان توسعه آتی نرم افزار محدود خواهد بود.
«« تحقیق درس مهندسی نرم افزار - استاد بهروز سروش »»