استانداردي براي نرم‌افزارهاي تركيبي است كه توسط شركتOMGطراحي شده و پشتيباني مي‌گردد. اين استاندارد API، پروتكل‌هاي رابطه‌اي ومدل‌هاي اطلاعاتي object/service را تعريف مي‌كند كه مي‌تواند نرم‌افزارهاي ناهمگون را به هم مرتبط می‌سازد. بنابراين با استفاده از ‌CORBA مي‌توانيم ازشي ‌(object) در پلتفرم‌هاي توزيع‌‌يافته‌ ،به صورت مشترك استفاده كنيم؛ بدون نگراني از اين كه شي در چه موقعيت مكاني قرارگرفته يا به چه پلتفرمي متعلق است.CORBA مي‌تواند كدهاي نوشته شده (در برخي زبان‌هاي برنامه‌نويسي) را بسته بندي و به آن اطلاعاتي از قبيل توانايي اجرايي كدها و چگونگي اجراي آن‌ها را اضافه نمايد. به‌طوري كه اين كدهاي بسته بندي‌شده (يا شي‌ها) بتوانند از برنامه‌هاي ديگر  كه تحت شبكه قرار دارند، اجرا شود CORBAبراي تعيين‌كردن اينترفيس‌هايي كه به ديگران ارائه مي‌كند، از يك زبان رابطه‌اي به نام IDL استفاده مي‌كند و از طريق اين زبان مي‌تواند كدهاي اجرايي  را بشناسد.

دلا‌يل نياز به‌‌ CORBA

گوناگوني سيستم‌عامل‌ها و تنوع پلتفرم‌هاي سخت افزاري ،گوناگوني پروتكل‌هاي شبكه ، گوناگوني زبان‌هاي برنامه‌نويسي و نياز ارتباط يافتن‌ سيستم‌هاي جديد با سيستم‌هاي قديمي  دانست.

كاركرد ‌‌‌CORBA

نرم‌افزارهايي كه از ‌‌CORBA استفاده مي كنند، حاوي شي‌هايي‌‌هستند. براي هر نوع از شي‌ها، مي‌بايد يك اينترفيس در‌ OMG IDL تعريف كنيم كه نشانگر سرويس‌هايي است كه شي سرور در اختيار كلاينت‌هاي تقاضا‌كننده  قرار‌مي‌دهد. هر كلاينت كه تقاضاي اجراي عملياتي از شي را دارد، بايد از اين اينترفيس‌ها استفاده و آرگومان ها را كنار هم چيده و ارسال‌‌نمايد. وقتي كه اين تقاضا به شي سرويس‌دهنده مي‌رسد، اين شي با استفاده ازاينترفيس مشابه آن، عمليات درخواستي كلاينت را انجام مي دهد و آرگومان ها را جدا سازي مي كند. پس از انجام  عمليات درخواستي، جواب درخواست، بسته بندي شده و با استفاده از تعريف اينترفيس  از همان مسيري كه آمده بود، بر مي گردد. جداسازي اينترفيس و قسمت اجرايي كه توسط ‌OMG IDL مهيا شده است،  يكي از مهم‌ترين پايه‌هاي اصولي CORBA مي باشد و ايجاد اينترفيس براي هر شي در CORBA ضروري است. ازطرف ديگر قسمت اجرايي هر شي از ديد سيستم مخفي مي‌ماند و كلاينت از آن چيزي نمي‌داند. در نتيجه كلاينت‌ها فقط مي‌توانند از طريق اينترفيس‌ها به سرويس‌ها دسترسي داشته و تنها سرويسي را اجرا كنند كه توسط اينترفيس‌هاي ‌IDL معرفي شده اند.

مزاياCORBA 

موقعيت مكاني شي مي‌تواند بدون بروز اشكال در نرم افزار تغيير يابد.  ‌ وكلاينت نيازي به دانستن اين‌كه سروري براي جواب دادن به درخواست وجود دارد يا نه، ندارد. ‌كلاينت و سرور مي‌توانند به دو زبان كاملا متفاوت نوشته شوند و كلاينت نمي‌داند يك شي چگونه عمل مي‌كند. به همين خاطر يك سرور مي‌تواند بدون اين كه كلاينت اطلاع پيدا كند يك بار از فايل ساده و بار ديگر از پايگاه اطلاعاتي شي‌گرا براي ذخيره اطلاعات استفاده نمايد. سرعت و كارايي سيستم‌هايي كه از‌ CORBA استفاده مي كنند بسيار بالا است.‌سيستم‌هاي عامل و پروتكل سرور و كلاينت مي تواند متفاوت باشد

 

معايبCORBA

 از انتقال و جابه‌جايي شي ها پشتيباني نمي كند CORBA به‌IDL ‌هايي نياز‌‌ ‌دارد كه هنوز براي برخي از زبان‌ها تعريف نشده است و وقت زيادي براي يادگيري آن‌ها نياز است