الـ RMI أو استدعاء الطرائق عن بعد،هي آلية و تقنية تسمح لنا ببناء تطبيقات موزعة و ذلك بتزويدنا بإمكانية استدعاء توابع (أو طرائق)methods عن بعد بين عدة آلات مختلفة JVM . و الـ RMI هي نوع من أنواع البرمجيات الوسيطة Middleware التي تستخدم لمكاملة تطبيقات شبكة(تطبيقات موزعة)،وهي معيار من شركة SUN وبالتالي فهي خاصة بـلغة جافا حصراً،وبالتالي لا يمكن مكاملة تطبيقات شبكية لا تستخدم لغة جافا بواسطة الـ RMI. طبعاً يوجد عدة تطبيقات وسيطة أخرى مكافئة للـ RMI منها: ٌRPC,ORB,Queue,Web Services ،CORBA وكلها لها الهدف نفسه وهو مكاملة التطبيقات على الشبكة.
مل يميز الـRMI عن باقي أنواع البرمجيات الوسيطة Middleware
إن مبدأ عمل الـ RMI بسيط للغاية،فهي تعتمد على وجود RMI Server وهو عبارة عن برنامج جافا عادي يقوم بانشاء الأغراض Object التي نريد استدعاءها أو استدعاء طرق Method منها عن بعد ثم يقوم بوضع bind ربط أو تسجيل تلك الأغراض المنشأة فيما يسمى بالـ RMI ،لتصبح بعد ذلك متاحة للزبائن. بالإضافة لوجود مخدم RMI نحتاج لوجود RMI Client و الذي يطلب من المخدم السابق(بعد أن يعرف نفسه ) البحث عن غرض ما ضمن الـ Registry ثم يعيد المخدم لذلك الزبون عندما يجد ذلك الغرض ما يسمى بـ Stub (يعرف أيضاً بـ Remote reference) ثم استدعاء الطرائق المطلوبة ، طبعاً عملياً الزبون يستدعي الطريقة البعيدة أي أن الطريقة المستدعاة تنفذ عند المخدم و ليس عند الزبون أما النتيجة return فهي التي تعاد للزبون. مع ملاحظة أن الـ RMI هو استدعاء غير متزامن.