استاندارد ساختار معمارى CORBA توسط گروه OMG و بهمنظور برقرارى ارتباط بين اشياء توزيعشده تدوين گرديده است. اشيائى که خود حاوى ماجولهاى نرمافزارى مىباشند.
CORBA | - Common Object Request Broker Architecture |
OMG | - Object Management Group |
CORBA شيوهاى را عرضه نموده است که ازطريق آن اجراى برنامههاى (اشياء) نوشتهشده به زبانهاى مختلف صرفنظر از سختافزار و محل قرارگرفتن آنها در شبکه، امکانپذير مىگردد. اين استاندارد براى معمارىهاى چندلايهاى و برنامههاى کاربردى client/server بويژه در مواقعى که اجراى يک فرآيند به اجزاى فرآيندى بر روى کامپيوتر ديگرى بستگى دارد مناسب مىباشد.
برخى مواقع CORBA را بهعنوان يک (مسير عمومى نرمافزاري) و يا (مسير اشياء) توصيف مىنمايند. زيرا درواقع يک واسط ارتباطى مبتنى بر نرمافزار است که ازطريق آن مکان اشياء و دسترسى به آنها انجام مىپذيرد.
استاندارد CORBA درواقع مؤلفه ارتباطات معمارى مديريت اشياء (OMA-Object Management Architecture) مىباشد. ازطريق CORBA ساير المانها نظير security services ،naming services و transaction services معرفى مىگردند.
اغلب عبارت CORBA را بجاى OMA مورد استفاده قرار مىدهند. اشياء CORBA توسط زبان IDL تعريف مىشوند. اين زبان فرآيندها (متدهاي) شيء را شرح داده و فرمت دادههاى ارسالى و مقادير برگشتى را معين مىنمايد. براى هريک از زبانهاى برنامهنويسى مانند Smalltalk ،Java ،C++ ،C و COBOL يک کامپايلر مجزا در زبان IDL درنظر گرفته شده است. بدين ترتيباين امکان براى برنامهنويسان فراهم گرديده است تا متدهاى سازنده را بکار برند که در ساير زبانها با آنها آشنا مىباشند و برنامههاى کاربردى client و server هرکدام با زبان مربوط به خود صحبت نمايند.
IDL | - Interface Definition Language |
اشياء تعريفشده توسط IDL در Repository واسط ذخيره مىگردند بهنحوى که اشياء ذخيرهشده مىتوانند توسط برنامههاى کاربردى client بهمنظور آگاهى از اينکه چه اشيائي، درمسير (bus) قابل دستيابى مىباشند، مورد استعلام قرارگيرند.
هرگاه در زمان اجرا درخواستى توسط يک client مربوط به شيئى که در مکان دورى برروى شبکه ارتباطى قرار دارد، صادر گردد، ORB-Object Request Broker اين پيگيرى را انجام مىدهد.
در اين رابطه ORB با ارائه يک proxy object در فضاى آدرس client، درواقع بهگونهاى وانمود مىنمايد که شيء موردنظر يک شيء محلى است. ارتباط بين client و server براساس مکانيزم معرفىشده توسط پروتکل GIOP بصورت تبادل پيام صورت مىپذيرد.
GIOP | - General Inter-ORB Protocol |
براساس اين پروتکل هرگاه يک ORB client بخواهد يک CORBA operation روى server انجام دهد، ابتدا يک پيام GIOP به server ارسال نموده و سپس ORB server با دريافت درخواست client، آن را تبديل به فراخوانى يک شيء روى server مىنمايد و سپس مقدار برگشتى آن بهعنوان نتيجه پاسخ پيام GIOP خواهد بود و نهايتاً ORB client با دريافت پاسخ و تبديل آن به مقدار برگشتى يک متد، آن را دراختيار برنامه کاربردى client قرار مىدهد.
GIOP مستقل از هرگونه Network transport مىباشد اگرچه وقتى پروتکل GIOP روى TCP/IP فرستاده شود IIOP ناميده مىشود.
IIOP | - Internet Inter-ORB protocol |
زمانى که براى اولينبار IDL در نسخه CORBA1.0 ارائه گرديد تنها تعداد اندکى از زبانها ازجمله C را پشتيبانى مىنمود. در نسخه CORBA2.0، نگاشت زبانهاى بيشترى فراهم گرديد (بخصوص ++C و Java) ضمن آنکه ORBهاى بيشترى توسط عرضه کنندگان مختلف در GIOP پشتيبانى گرديد.
در نسخه CORBA3.0 علاوهبر معرفى استانداردهاى ديوارهاى آتش (firewall) براى ارتباط ازطريق اينترنت، پارامترهاى مربوط به کيفيت سرويسهاى CORBA نيز در اين نسخه درنظر گرفته شدند. اين پارامترها برنامهنويسان را قادر مىسازد تا سرويسهاى اساسى را در سطوح بالاتر فعال نمايند.
قابليت Interoperability مؤلفههاى CORBA با نرمافزار Enterprise JavaBeans شرکت سان نيز بهنسخه CORBA3 اضافه گرديده است.