بخشی از مقاله

آشنایی با ابعاد CORBA
خلاصه
امروزه استفاده از تکنولوژی هایی که توانایی ارتباط بین اجزای مورد استفاده در سیستم های توزیع شده به صورت پویا و سریع داشته باشند، ضروری است. استفاده از سیستم های توزیع شده با قابلیت برقراری ارتباط میان سیستم عامل های مختلف بیش از پیش مورد توجه واقع شده است از میان تکنولوژی های مختلف در سیستم های توزیع شده تکنولوژی (Common Object Request Broker Architecture) CORBA به دلیل برقراری ارتباط میان کامپیوترها با سیستم عامل های مختلف مورد توجه قرار رفته است. در این مقاله به بررسی تکنولوژی CORBA ، چگونگی عملکرد مزایا و معایب آن و همچنین مقایسه آن با تکنولوژی مشابه پرداخته ایم. در این مقاله سعی بر این است که ابعاد مختلف تکنولوژی CORBA تشریح شده و چگونگی کار با آن مطرح شود. سپس به بررسی مدل RPC پرداخته و ساختار و اجزاء و چگونگی استفاده از آن در CORBA پرداخته ایم. در این مقاله سه فن آوری CORBA، Web Services و Data Model مورد بازبینی قرار گرفته و همچنین تفاوت میان این تکنولوژی ها برای برقراری ارتباط میان سیستم های راه دور پرداخته شده است. در انتها یک روش توزیع بار در CORBA را به طور مختصر شرح داده ایم.
کلمات کلیدی: CORBA، IDL، RPC، GIOP، IIOP

.1 مقدمه
سیستم های کامپیوتری در کاربردهای مختلف از قبیل کاربردهای، علمی، تولید و کسب و کار به طور گسترده استفاده می شوند. ایده اصلی سیستم های توزیع شده استفاده از یک معماری Client/Server در ترکیب با روش فراخوانی راه دور، می باشد. فراخوانی در این روش ها، به صورت ارسال داده از یک Client به یک Server برای پردازش و سپس برگشت اطلاعات از Server به Client، ارائه شده است. به طور کلی، سیستم های توزیع Java-RMI، CORBA و Web Services طیفی از روش ها را برای برقراری ارتباط با اشیاء توزیع شده از کامپیوتر راه دور ارائه کرده اند. [1]
با تشکیل شرکت1OMGدر سال 1989 اولین نسخه معماری متعارف 2CORBA، در سال 1990 معرفی شد اما CORBA فقط یک سری مشخصات و ویژگیها بود و تولید کننده گان نرم افزار می توانستند به هر روشی آنرا پیاده سازی نمایند. نسخه تکمیل شده آن در سال 1991 با نام CORBA 1.1به بازار عرضه شد و مهمترین ویژگی این نسخه تعریف زبانی با نام 3IDL بود که به عنوان 4API در این نرم افزارها برای ارتباط با 5ORB تعبیه شده اند.
نرم افزارهایی که برای ارتباطات راه دور و خدمات توزیع برای برنامه های کاربردی استفاده می شوند باید قابل اعتماد، کارآمد، انعطاف پذیر و قابل استفاده مجدد باشد. بنابراین استفاده از CORBA ایجاد انگیزه می کند. با این حال ساخت برنامه های کاربردی سطح بالا برای CORBA چالش برانگیز است و هیچ یک از استانداردهای CORBA و پیاده سازی های مرسوم آن مشکلات پیچیده ای با محاسبات توزیع شده، مانند زمان واقعی و یا سرعت بالا کیفیت خدمات، شکست نسبی، گروه ارتباطات، و.... دارند. [2]
برنامه های کاربردی CORBA می توانند مقیاس پذیری مورد نظر و قابلیت اطمینان حمل با آداپتور شیء را بدست آورند. سیاست تحمل پذیر خطا و متعادل کردن خدمات بار از ویژگی های CORBA محسوب می شود. [1]

.1.1 تعریف
CORBA یک استاندارد میان افزار محاسباتی شی توزیع شده است که توسط گروه مدیریت شی (OMG) در سال های 2003-1989 ارائه شده است. طراحی CORBA به مشتریان اجازه استناد عملیات بر روی اشیاء از راه دور بدون توجه به مکانی که شی ساکن است و یا زبانی که نوشته شده است، را می دهد.[2] بنابراین، CORBA یکی از بهترین استراتژی های توزیع محسوب می شود.
CORBA از زبان IDL که مستقل از هر نوع زبان برنامه نویسی می باشد پشتیبانی می کند. زبان های برنامه نویسی سطح بالا از جمله C، C++، Smalltalk، COBOL، Java و ... این زبان را پشتیبانی می کنند. اشیاء تعریف شده توسط IDL در واسط ذخیره میگردند.
.1.2 تفاوت CORBA و :6DCOM
مدل CORBA مدل شیء گسترده OMG است در حالی که مدل DCOM مدل شیء گسترده مایکروسافت می باشد. در واقع DCOM محصول رقابتی ماکروسافت درقبال CORBA می باشد. DCOM می تواند ارتباط بین اشیاء در کامپیوترهای مختلف بر اساس مدل Client/Server برقرار کند. در بسیاری از شرایط این دو تکنولوژی شبیه به یکدیگر می باشند، هر دو تکنولوژی از واسطه های بین اشیاء برای ارتباط بین DCOM و CORBA می توان استفاده کرد. هر دو استراتژی برای ارتباطات خود از مدل سرویس دهنده/سرویس گیرنده استفاده می کنند. مدل ارتباطی بین یک پردازه سرویس گیرنده و یک شی سرویس دهنده در تکنولوژی های CORBA و DCOM، تابع مدل مبتنی بر شی 7RPC می باشد. از طرفی DCOM تنها در سیستم عامل های ماکروسافت در نظر گرفته شده است در صورتی که در تکنولوژی CORBA نوع سیستم عامل می تواند متفاوت باشد. [3]

.2 ساختار استراتژی CORBA
شکل1 ساختار نمودار CORBA را نشان میدهد که شامل موارد زیر است: [4]

عملکرد بخش های ساختاری CORBA بدین صورت است: Client -1 و Object implementation Object یک نهاد برنامه نویسی است که رابط CORBA IDL را پشتیبانی می کند مانند Java، C++، C و Smalltalk و ... . Client به عنوان سرویس گیرنده ای است که می خواهد یک تابع از راه دور را فراخوانی کند.
IDL stub -2 و : IDL skeleton

IDL Stub مسئول پارامترهای مورد نیاز برای ارتباط داده ها با یکدیگر و همچنین انتقال، دریافت و باز کردن نتایج بازگشتی آن ها می باشد. IDL Skeleton تعداد پارامترهای مورد نیاز را در ترمینال دریافت می کند و در محفظه ای نگهداری کرده سپس در اختیار Object قرار می دهد.

DII -3 و :DSL
DII یا رابط فراخوانی پویا این امکان را به مشتری می دهد تا بتواند به صورت پویا ارسال اطلاعات را انجام دهد و درخواست از هر Object را در همان زمان اجرا کند. کاربر باید از اطلاعات درخواست شده به صورت پویا از جمله عملیات مربوطه و پارامترهای مرتبط با آن و ... استفاده کند. نقش DSL در سرور همان نقش DII در سمت سرویس گیرنده است.

: Object Adapter -4
آداپتور Object مسئول ثبت نام سرویس Object، ایجاد وتوضیح Object، فعالسازی و لغو روند خدمات پیاده سازی Object، و توزیع درخواست Client می باشد.

:ORB Interface -5
رابط ORB، ارتباط با سرویس ORB را برای Object و Client فراهم میکند.
:ORB Core -6
هسته ORB روش ارتباط شفاف را بین مشتری و پیاده سازی شیء فراهم میکند، و میتواند شامل حفظ جزئیات: موقعیت پیاده سازی Object، الگوی پیاده سازی، مکانیزم ارتباطات و وضعیت، و تنوع پیاده سازی Objectهای مختلف باشد. [4]

.3 ساختار :RPC
Remote Procedure Calls بدین صورت عمل می کند:
برای فراخوانی یک تابع راه دور، سرویس گیرنده یک فراخوانی به Client Stub انجام می دهد. Stub پارامترهای مربوط به فراخوانی تابع را در یک پیام درخواستی بسته بندی کرده و پارامترهای مورد نیاز برای ارسال را اضافه می کند. سپس یک Wire Protocol را به منظور حمل پیام برای سرویس دهنده فرا می خواند. پس از حمل در سرویس دهنده، پیام در اختیار Server Stub گذاشته می شود تا عملیات بازگشایی بسته ارسالی انجام و زمینه فراخوانی متدهای مربوط به شی مورد نظر فراهم می گردد. [5] این روند را می توان در ساختار زیر مشاهده نمود:

در تکنولوژی DCOM، Client Stub به عنوان Proxy و Server Stub به عنوان Stub شناخته می شود؛ از طرفی در CORBA، Client Stub به عنوان Stub و Server Stub به عنوان Skeleton می باشد که این مسئله یکی دیگر از تفاوت های DCOM با CORBA می باشد.

.4 پروتکل های مورد استفاده در :CORBA
CORBA از دو نوع پروتکل در ORB Core برای ارتباط استفاده می کند: براساس پروتکل 1GIOP هرگاه یک ORB client بخواهد با استفاده از CORBA یک operation روی server انجام دهد، ابتدا یک پیام GIOP به server ارسال نموده و سپس ORB server با دریافت درخواست client، آن را تبدیل به فراخوانی یک شیء روی server مینماید و سپس مقدار برگشتی آن بهعنوان نتیجه پاسخ پیام GIOP خواهد بود
و نهایتاً ORB client با دریافت پاسخ و تبدیل آن به مقدار برگشتی یک متد، آن را دراختیار برنامه کاربردی client قرار میدهد. وقتی پروتکل GIOP روی TCP/IP فرستاده شود2IIOP نامیده میشود. [6,7]
به طور گسترده پروتکل محبوب اینترنت IIOP به عنوان زیرساخت برای شرکت های فن آوری مانند Netscape، Oracle، SUN، IBM و صدها نفر دیگر استفاده شود. این مشخصات ممکن است در سراسر جهان به منظور توسعه و

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید