PDA

View Full Version : تاریخچه و پیشینه Corba



Identifier
شنبه 27 آبان 1385, 18:10 عصر
http://sern.ucalgary.ca/courses/cpsc/547/f97/corba/Figure2.gif
درسال 1989(object management group) OMGبا 8 عضو تشکیل شدو شامل بیش از 760 سازمان و بخش بود که وظیفه آنها ”فراهم کردن یک قالب کاری و ساختاری برای نرم افزارهای شیءگرا که بطور گسترده استفاده می شد“ بود.در حقیقت این سازمانها و شرکتها از شرکتهای مهم در زمینه هایی چون سیستم عامل ، پایگاه داده ،نرم افزارهای کاربردی ، ابزارهای تولید نرم افزار و... بودند که منشور آنها فراهم کردن یک قالب کاری معماری گونه متعارف برای نرم افزارهای کاربردی شئ گرا بود.این هدف بسیار بزرگی بود ولیOMG با طرح معماری مدیریت اشیاءOMA به این هدف رسید و corba نیزجزئی از این ساختار است. این مجموعه از استانداردها یک قالب کاری را بوجود آوردند که نرم افزارها بر پایه آن ساخته می شوند به طور خلاصهOMG شامل بخشهای زیر بود:

ORB(Object Request Broker)
Object services
Commen faeilities
Domain interfaces
Application objectبا تشکیلOMG در سال 1989 اولین نسخه معماری متعارف دلال تقاضای اشیاء ( Common Object Request Broker Architecture )که بطور خلاصهcorba نامیده می شد، در سال 1990 معرفی شدو corba فقط یک سری مشخصات و ویژگیها بود و به تولید کننده گان نرم افزار اجازه میداد تا این مشخصات را با هر راهی پیاده سازی کنند.تکمیل شده آن در سال 1991 با نام corba1.1 به بازار عرضه شد و مهمترین ویژگی این نسخه تعریف زبانی با نامIDL بود که بعنوانAPI در این نرم افزارها برای ارتباط باORB تعبیه شده اند.

کلاً در نسخه های corba 1.X گامی برای ارتباط و عملکرد داخلی اشیاء برداشته شده بود و اشیاء در ماشینهای مختلف و در معماریهای مختلف و در زبانهای مختلف با یکدیگر ارتباط برقرار می کنند مهمترین محدودیت نسخه corba 1.X این بود که پروتکل استانداردی برای ارتباط با ORB های مختلف تحت شبکه وجود نداشت.

در نتیجه ORB از یک شرکت نمی توانند باORB از یک شرکت دیگر ارتباط برقرار کنند ولیcorba 2 که در دسامبر 1994 ایجاد شداین مسئله را حل کرد و پروتکلی بنام IIOP(internet- inter-orb-protocol) بوجود آمد و استفاده از این پروتکل برای تمام شرکتها ضروری شد. با استفاده از این پروتکل دیگر نرم افزارهای که از آن از تکنولوژی corba استفاده می شود مستقل از سخت افزار و مستقل از شرکت تولید کننده نرم افزاراست.
سیر تکاملی corba همین گونه ادامه یافت تا در سال 2000corba 3 به بازار عرضه شد و کاملترین نسخه corba می باشد.
این مروری بر سیر تکاملی و پیشینه corba بود و در بخشهای بعدی ساختار و کاربردهای آن بررسی خواهد شد.

2.معماریCORBA

اجزای مختلف معماری corba بشرح زیر است:
1.ORB یا دلال تقاضای اشیاءکه یکی از قستمهای اساسی معماری corba است.
2.IDL. یا زبان تعریف واسط که یکی دیگر از قسمتهای اساسی معماری corba است.
3.مدل اشیاءcorba که شامل ارجاعات اشیاء و سازگار کننده پایه ای اشیاء(BOA) است.
4. مدل ارتباطی corba.یعنی اشیاءcorba چگونه در داخل یک شبکه با هم هماهنگ می شوند.
5.تعریف و نقش مشتری وخدمتگزار در معماری CORBA

دلال تقاضای شیء ORB-object request broker
مفهوم یکORB چنین شرح داده میشود :وقتی یکی از اجزا یکی از نرم افزارها بخواهد از سرویسهای فراهم شده توسط شیء دیگری استفاده کند.ابتدا باید یک ارجاع از شیی که سرویس را فراهم می کند بدست آورد. بعد اینکه این اشاره گر را بدست آورد آن قسمت میتواند متدهای فراهم شده توسط آن شیء را فراخوانی کند وبه سرویس مورد نظر خود برسد.وظیفه اصلیORB تصمیم گیری در مورد مراجعه به شی مورد نظر است وهمچنین نرم افزارها را قادر می کند تا با یکدیگر ارتباط برقرار کنند.این مهمترین مسئولیتORB است.

مارشالینگ

بعد از اینکه یک جزء نرم افزاری از شیی که می خواهد از متدهای آن استفاده یک ارجاع
کسب کرد، میتواند متد مورد نظر را فراخوانی کند این متدها پارامترهایی را به عنوان ورودی می گیرد و همچنین پارامترهایی را به عنوان خروجی می فرستد مسئولیت دیگر ORBدریافت پارامترهای ورودی از جزء فراخواننده ومارشال کردن آنها به شیئ فراهم کننده متد است همچنین پارامترهای خروجی از متدها را آنمارشال می کند.
مارشالینگ پروسه ای است که پارامترهای ورودی را به شکلی که قابل انتقال توسط شبکه باشد تبدیل می کند.
آنمارشالینگ: عمل معکوس مارشالینگ است و داده های آمده از شبکه را به شکل پارامترهای ورودی تبدیل می کند.
برای اینکه ORB بتواند داده ها را در شبکه رد وبدل کند آنها را به فرمت خاصی
تبدیل می کند که این فرمت را one-the-wire می گویند

نتیجه مارشالینگ و آنمارشالینگ استقلال سخت افزاری است. بدلیل اینکه پارامترها هنگام انتقال از شبکه به یک شکل مستقل از سخت افزار تبدیل می شود و هنگام دریافت به یک شکل وابسته به سخت افزار تبدیل می گردد.در نتیجه ارتباط بین اجزاءیک رابطه مستقل از سخت افزار است.برای مثال یک سیستم مکینتاش می تواند متدی را در سروری که یونیکس است اجرا کند.تمام اعمال مارشالینگ و آنمارشالینگ توسطORB اداره می شود.
ORBدارای چند بخش می باشد که مهمترین آنها موارد زیر هست:

1.انبار واسط
انبار واسط (IR) یک بخش خیلی مهم ازORB است که شامل اطلاعات در مورد نوع واسط است ونیازمند نوعی از حافظه دائمی برای نگهداری و ذخیره واسط است .اطلاعات موجود در فایل IDL برای ذخیره شدن درIR مناسب هستند.

2.انبار پیاده سازی
این انبار شامل اطلاعاتی در مورد موقعیت مکانی اشیاء وهمچنین اطلا عاتی در مورد اینکه کدام یک از اشیاء اخیرا نمونه سازی شده است را داراست .انبار پیاده سازی هنگامیکه درصدد متصل شدن به شیء خاصی است مورد استفاده قرار می گیردیا هنگامی که می خواهد یک شیءجدید را فعال کند مورد استفاده قرار میگیرد.


Interface Definition Language- IDL

اگر یکی از پایه های corba ،ORB باشد، پایه دیگر آن IDLاست. IDLزبانی است که به منظور تعریف واسط بین اجزاء نرم افزارها استفاده میشود.IDL یک زبان رویه ای نیست. آن فقط می تواند واسط را تعریف کند و پیاده سازی وظیفه آن نیست.برنامه نویسانC++ تعریف را مشابه سرفایلها و کلاسها فکر می کنند. در حقیقتIDL زبانی استاندارد برای تعریف واسط است.خصوصیات IDL ها از این مطمئن می سازد که داده ها بدون هیچ مشکلی بین دو زبان برنامه نویسی غیر مشابه ردو بدل شوند.

استقلال از زبان
زبانIDL یک بخشی از استاندارد corba است و از هر زبانی مستقل است این استقلال نتیجه مفهوم نگاشت زبان است .OMG تعدادی از نگاشتهای زبان استانداردرا برای زبانهای محبوب تعریف کرده است.

مدل ارتباطات corba
برای فهم corba‚ابتدا باید نقش شبکه را در سیستمهای محاسبه ای تشریح شود .معمولا‏ً یک شبکه کامپیوتری شامل سیستمهایی است که بطور فیزیکی بهم پیوسته اند. این لایه فیزیکی یک وسیله ای را برای ایجاد ارتباط فراهم می کند.این وسیله ارتباط می تواند خط تلفن و... باشد.این لایه که لایه حمل و نقل نامیده می شود شامل پروتکلهایی است که مسئول انتقال بسته های داده هستند. مهمترین پروتکل امروزTCP/IP است.

پروتکلهایinter_ORB

حال باید این مسئله بررسی شود که corba چگونه در مدل شبکه ای عمل می کند.نکته این است خصوصیات corba جدای پروتکلهای شبکه است. استاندارد corba پروتکلی را مشخص کرده است که بعنوانGoip شناخته می شود.که در سطح بالا، استانداردی برای ارتباطات بینORB های مختلف و اجزاء مختلف فراهم می کند.
General Inter-ORB Protocol) Goip )همانطور که نامش مشخص می کند یک پروتکل کلی است. استاندارد corba پروتکلهای دیگری را مشخص می کند که موجب می شودGoip بعنوان پروتکلهای انتقال خاص نیز مورد استفاده قرار گیرد.بخاطر اینکهGoip یک پروتکل کلی است از آن مستقیماً استفاده نمی شود بجای آن از پروتکلهای خاص استفاده می شود که ویژگیهایGoip در آنها قرار داده شده است و میشود از آنها مستقیماً استفاده کرد.برای مثال یکی از مهمترین پروتکلهای شبکه های تحتTCP/IP که بر مبنایGoip استInternet Inter-ORB Protocol) IIOP (است. IIOPیک نوع خاص ازGoip است. IIOP پروتکل استانداردی برای ارتباطات بینORB های تحت شبکه های مبتنی برTCP/IP است.

Corba و مدل شبکه ای
حال باید جایگاهcorba در مدل شبکه ای بررسی شود.نرم افزارهایcorba روی لایه پروتکل IIOP نوشته می شوند.این پروتکلها خودشان نیز رویTCP/IP قرار دارند.نرم افزارهای تحتcorba محدود نیستند که فقط از این پروتکلها استفاده کنند.

مدل شیءcorba
هر معماری شیء گرا یک مدل شیءای ارائه می دهدکه چگونگی ارائه شدن اشیاءرا در سیستم تشریح می کند. corbaنیز یک سیستم شئ گرا ست در نتیجه دارای یک مدل شئ است.بدلیل اینکهcorba یک معماری توزیع شده است بهر حال ممکن است مدل شیئ آن با مدل شیئ سیستمهای دیگر مانند C++وjavaتفاوت داشته باشد. سه تفاوت عمده بین مدل شیئcorba و مدل شیئ سیستمهای تجاری دیگر وجود دارد که بشرح زیر است:
- حالت نیمه نمایش به منظور حمایت از توزیع اشیاء
- رفتار آن با ارجاعات اشیاء
- استفاده از سازگار دهنده اشیاء.

مشتریها وخدمتگزارها در corba
تعاریف خدمتگزار ومشتری در corba دقیقا مانند تعاریف اینها در سیستم مشتری- خدمتگزار است ومیتوان اینگونه تشریح کرد که هر شیئ که یک متد را فراخوانی کند نقش مشتری را خواهد داشت.وهر شیی که دارای متد درخوا ست شده باشد نقش خدمتگزار را خواهد داشت.

پیکر بندیها وریشه ها Stubs and Skeletons

بعد از اینکه یک توسعه دهنده تعاریف واسط اجزاء را با IDL ایجاد کند فایل IDL
خروجی را با کامپایلر IDL ایجاد می کند که با نام ریشه مشتری و استخوانبندیهای
خدمتگزار .اینها نقش یک چسب را بازی میکنند که مشخصات واسطهای مستقل از زبان را به یک کدپیاده سازی شده وابسته به زبان متصل می کند .استخوان بندی خدمتگزار قالب کاریی را که خدمتگزار بر مبنای آن تعریف شده است را فراهم می کند.

PC_user_83
پنج شنبه 02 آذر 1385, 18:20 عصر
با تشکر از مطلب خوبتون ، می خواستم بدونم آیا مطالب بیشتری در مورد CORBA و کاربرد آن در مهندسی نرم افزار (به زبان فارسی) دارید که در اختیار من بگذارید؟ یا کتاب آموزشی مناسبی می شناسید که بتونم اطلاعات بیشتی در این ضمینه کسب کنم؟

ROYA64
چهارشنبه 08 آذر 1385, 10:21 صبح
به این بلاگ یه سری بزن .
http://corba.mihanblog.com/