این اصطلاح سرنام واژه های عبارت Common object Reguest Broker Architecture است. CORBA تکنولوژی دیگر یا رقیبی است که برا ی تامین همان اهداف RMI توسعه داده شده است.تکنولوژیCORBA هر چند که مانند RMI وابسته به یک سکوی نرم افزار معین نیست،اما بر خلاف RMI محدود به یک زبان برنامه نویسی مشخص نیست و به کمک آن می توان سیستم های نرم افزاری گوناگون را در محیط های گسترده به یکدیگر ارتباط داد.
اما از نگاه برنامه نویسان جاوا(یا کسانی که فقط به فکر پروژه هایی هستند که در آن ها تنها از زبان جاوا استفاده خواهد شد)،تکنولوژی CORBA قابلیت انعطاف کمتری از خود به نمایش می گذارد و دشواریهایی را به برنامه نویس تحمیل می کند. علت این ماجرا هم در آن نهفته است که در CORBA امکان پاس کردن کد اجرایی همانند آنچه در RMI امکان پذیر بود ،فراهم نیست.
سرویس های CORBA از طریق یک رابط یا interface که به زبان IDL یا interface Definition Language نوشته شده است،توصیف می شوند. نگاشت های IDL برای بسیاری از زبان های برنامه نویسی تهیه شده اند و در آینده نیز در هر لحظه می توان نگاشت هایی برای زبان برنامه نویسی دیگری که قصد پشتیبانی از این تکنولوژی را دارند،فراهم کرد.CORBA به اشیای نرم افزاری این امکان را می دهد که درخواست هایی به مقصد اشیای نرم افزاری راه دور ارسال کنند و بدین ترتیب متدهای شی نرم افزاری راه دور را فراخوانی نمایند.به همین ترتیب هم می توان به کمک CORBA ،بین سیستم راه دو ربه تبادل داده اقدام کرد.اما این قابلیت در CORBA فقط به رد و بدل کردن انواع داده ای ساده یا حداکثر ساختارهای داده ای تشکیل شده از انواع داده ای ساده،محدود است. در ساختار ارتباطی بین کلاینت های CORBA و سرویس های CORBA ،درخواست های فراخوانی متدها به اشیایی به نام ORB ،رد می شوند(پاس داده می شودند).اشیای به نام ORB هم از طریق پروتکل ارتباطی internet inter ORB یا llop با یکدیگر ارتباط می یابند. از طرف دیگر،تراکنش های llop قابلیت جاری شدن بر بستر پروتکل TCP یا پروتکل های دیگری نظیر HTTP در مواقعی که یکی از طرفین ارتباط پشت یک دیواره آتش واقع شده اند،را دارند. CORBA یا RMI
همان طور که بیان شد،هر کدام از این دو تکنولوژی ها دارای ویژگی ها و مزایای خاص خود هستند و نمی توان هیچ یک را به طور مطلق جایگزین دیگری کرد.خواص هر یک از دو تکنولوژی موجب شده است که هر یک از آنها در حوزه فعالیت مشخصی به کار روند. خلاصه آن که اگر از مقایسه این دو تکنولوژی در اینجا نام برده می شود،علت آن است که از این طریق بهتر
می توان قابلیت ها و نقاط قوت یا ضعف آن ها را شناسایی کرد.
تکنولوژی RMI قابلیت ها و برتری های قابل توجهی نسبت به CORBA دارد که در این نوشته از مهم ترین آن ها یاد کردیم . این تکنولوژی از زمان معرفی JDK1.20 به این طرف در دسترس همگان قرار داده شده است.به همین دلیل هم بسیاری از برنامه نویسان جاوا با این تکنولوژی آشنایی دارند و از تجربه استفاده از آن برخوردارند و باز به همین دلیل نیز در بسیاری از شرکت ها و سازمان ها از همان زمان ها سیستم هایی به کار گرفته شده اند که بر اساس RMI عمل می کنند .این موارد باعث شده اند که با وجود آنکه تکنولوژی CORBA در بسیاری از موارد کارها را برای برنامه نویسان سهل کرده است اما هنوز بسیاری از برنامه نویسان به کار با RMI ادامه می دهند و صنعت نرم افزار نیز به چنین برنامه نویسانی نیاز دارد.
از طرف دیگر تکنولوژی CORBA به دلیل سهولت کاربرد و قابلیت انعطاف پذیری و از همه مهم تر پرتابل بودن آن (امکان استفاده در زبان های گوناگون)طرفداران زیادی در بین برنامه نویسان یافته است.اما صرف نظر از این موضوع استفاده از این تکنولوژی در سازمان هایی که سیستم های نرم افزاری گسترده ای دارند و امکان جایگزینی تمامی بخش های آن ها با اجزای نرم افزاری جدید میسر نیست،امری غیر قابل اجتناب یا غیر قابل جایگزین تلقی می شود.تکنولوژی CORBA به راحتی می تواند بین بخش های نرم افزاری متفاوت و سکوی های گوناگون ارتباط برقرار کرده و همانند پل ارتباطی به کار گرفته شود. در واقع تنها محدودیتCORBA در این زمینه آن است که برای آن که بتوان از این تکنولوژی در زبان های برنامه نویسی متفاوت استفاده کرد،باید قبلا”پشتیبانی از CORBA در آن زبان فراهم شده باشد.
نکته مهم دیگر ،وضعیت سرعت و کارایی این دو تکنولوژی در مقایسه با یکدیگر است. مشخص شده است که CORBA از نظر سرعت اجرا تا حدودی بر RMI برتری دارد و به همین دلیل جذابیت بیشتری در بین برنامه نویسانی که در حوزه برنامه نویسی real-time کار می کنند،یافته است.
«« تحقیق درس مهندسی نرم افزار - استاد بهروز سروش »»