بخشی از مقاله

چکيده
CORBA ١ هسته مرکزي مدل مرجع OMA ٢ که معماري استانداردي براي سيستم هاي نرم افزاري مرتبط به هم تعريف مي کند, را تشکيل مي دهد. معماري OMA، جهت استاندارد کردن مدل ارتباطي نرم افزارهاي گسترده که تبادل اطلاعات بين بسته هاي نرم افزاري از مسائل اصلي آن مي باشد، توسط سازمان 3OMG مطرح شده است .
مشخصات استاندارد CORBA بستري را فراهم مي کند که اين بسته ها بتوانند در يک محيط ناهمگون شامل سخت افزارها، سيستم عامل ها، و زبان هاي پياده سازي مختلف از سرويس هاي يکديگر بصورت ساختار يافته اي استفاده نمايند.
در سيستم هاي نرم افزاري کنترل پروسه ، بالاخص سيستم هاي کنترل شبکه قدرت ، استاندارد شدن رويه تبادل اطلاعات بين بسته هاي نرم افزاري هميشه مورد بحث واقع شده است . در اين سيستم ها معمولا اطلاعات کل سيستم به صورت متمرکز در ماشين هاي Server اسکادا جمع آوري شده و در اختيار بسته هاي نرم افزاري نمايش اطلاعات (HMI)، نرم افزارهاي مديريت و تحليل (EMS٤.DMS٥) و يا GIS٦ گذاشته مي شوند.
ما در اين مقاله با معرفي مدل OMA به بررسي CORBA جهت استفاده بعنوان بستر پايه ارتباطي در اين بسته هاي نرم افزاري مي پردازيم . سپس آن را با فن آوري هاي مشـــــابه (Java RMI, DCOM) مقايسه نموده و نتايج آزمايش کارآيي يکي از محصولاتي که CORBA را پياده سازي نموده است را به عنوان نمونه براي ارسال اطلاعات ديناميک پروسه ارائه مي کنيم . در آخر استفاده از CORBA را به عنوان زيرساختار ارتباطي بسته هاي نرم افزاري سيستم هاي کنترل شـبکه هاي برق (SCADA،HMI ، EMS.DMS و GIS) بررسي مي کنيم .

١ـ مقدمه
واسط ارتباطي استاندارد يکي از اصلي ترين نيازهاي سيستمهاي نرم افزاري گسترده که از کارکرد مجموعه اي از بسته هاي نرم افزاري مرتبط به هم به وجود مي آيند،مي باشد. براي ايجاد اتصال پذيري و سازگاري بين بسته هاي نرم افزاري نياز به زبان مشترک و زيرساخت استانداردي است که با هم از اين طريق اطلاعات رد و بدل کنند. با توجه به رشد روزافزون اين نوع سيستمها، لازم است که اين واسط ارتباطي تا حد ممکن ساختار يافته و انعطاف پذير باشد تا محصولات شرکتهاي مختلف بتوانند مستقل از نوع ماشين ، سيستم عامل و زبان برنامه نويسي با هم ارتباط برقرار کنند.
سيستمهاي نرم افزاري کنترل پروسه هاي صنعتي و به ويژه کنترل شبکه هاي قدرت از جمله سيستمهايي هستند که از کارکرد مجموعه اي از بسته هاي نرم افزاري مرتبط تشکيل مي شوند. در سيستم کنترل شبکه قدرت ، نرم افزار اسکادا وظيفه جمع آوري اطلاعات ديناميک شبکه را برعهده دارد. اين اطلاعات معمولا در ماشينهاي Server به صورت متمرکز جمع آوري مي شوند و جهت نمايش براي ديسپاچرهاي شبکه به ماشينهاي Client منتشر مي شوند و همچنين به بسته هاي نرم افزارهاي کاربردي قدرت (PAS) شامل EMS و DMS يا سيستم نمايش جغرافيايي GIS ارسال مي گردد. همچنين تصميم گيريهاي ديسپاچرها جهت کنترل شبکه و نتايج خروجي تحليل نرم افزارهاي PAS به Server ارسال و در صورت لزوم دوباره منتشر مي شوند.در اين سيستم ها وجود يک واسط استاندارد که محصولات شرکت مختلف از طريق آن بتوانند به راحتي با هم اطلاعات ردوبدل نمايند مورد توجه مي باشد [١,٢]. معماري OMA و استاندارد CORBA يکي از راه حلهايي است که مي تواند در پاسخ به چنين نيازهايي مورد استفاده قرار گيرد [٣,٤].
کنسرسيوم OMG يک مدل مرجع به نام OMA را براي معماري کلي سيستمهاي نرم افزاري مرتبط به هم تعريف نموده است [٥]. استانداردهاي متعددي در زمينه هاي کاري مختلفي در قالب اين معماري تعريف شده است . از جمله اين استانداردها مجموعه اينترفيس هاي UMS-DAF و DAIS مي باشدکه به عنوان استاندارد ارتباطي براي اتصال ماژول هاي سيستمهاي کنترل پروسه و به خصوص کنترل شبکه برق ارائه شده است [٨-٦].
پيش نويس اين استاندارد توسط شرکت هاي معتبر که در زمينه سيستم هاي اتوماسيون شبکه برق فعال مي باشند تهيه و توسط کنسرسيوم OMG به عنوان استاندارد مورد قبول قرار گرفته است . اين استاندارد به عنوان پايه اي براي استانداردهاي سري x٤٠-IEC٦١٩٧٠ تحت عنوان CIS ٣ که اخيرا در موسسه IEC در حال تهيه مي باشند، در نظرگرفته شده است .
استاندارد DAIS شامل اينترفيسهايي بر پايه CORBA مي باشد. CORBA مشخصات استانداردي براي ايجاد ارتباط ساختار يافته در بسته هاي نرم افزاري مي باشد[٩].
پياده سازي اين استاندارد محيطي را فراهم مي کند که اين بسته ها بتوانند در يک محيط ناهمگون ٤ شامل سخت افزارها و سيستم عاملهاي مختلف و زبان پياده سازي متفاوت از اشياء سرويس دهنده ي يکديگر استفاده نمايند و با فراخواني متدها و درخواست مقدار متغيرهاي اين اشياء سرويسهاي موردنظر را دريافت نمايند.
ما در اين مقاله ابتدا سازمان OMG, معماري OMA و سرويس هاي آن [١٠] را معرفي مي کنيم . سپس استاندارد CORBA که زيرساخت مرکزي اين مدل مي باشد را بررسي کرده و آن را با تکنولوژيهاي مشابه DCOM و Java RMI جهت استفاده در نرم افزار اسکادا مقايسه مي کنيم .
٢ـ معرفي OMG
OMG يک سازمان بين المللي است که توسط بيش از ٨٠٠ شرکت مهم و فعال در زمينه تکنولوژي اطلاعات شامل طراحان ، توسعه دهندگان نرم افزار پشتيباني مي شود. اين سازمان در سال ١٩٨٩ با هدف ارتقاء تکنولوژي شي ءگرا در توليد نرم افزار تاسيس شده است .
منشور کاري سازمان OMG، توليد استانداردها و رهنمونهاي کاربردي براي صنعت اطلاعات در جهت ايجاد يک قالب مشترک براي توسعه نرم افزارها شي ءگرا تعريف شده است . اهداف پايه اين استانداردها ايجاد قابليتهاي استفاده مجدد١، حمل پذيري ٢، سازگاري ٣ نرم افزارهاي شي ءگرا در محيط هاي گسترده و ناهمگون مي باشد. پيروي از اين استانداردها اين امکان را فراهم مي آورد که بتوان نرم افزارهايي توليد کرد که در محيط هاي ناهمگون سخت افزارها و سيستم عاملهاي مختلف با هم مرتبط شده و با هم کار کنند. OMG به سمت استقرار ساختار ”معماري بر مبناي مدل “(MDA)٤ از طريق تهيه مشخصات پايه شامل CORBA، CORBA.IIOP،XMI UML ،MOF ،Object Services،Internet Facilities و Domain Interface پيش مي رود.
اين استانداردها توسط بسياري از شرکتهاي مهم پياده سازي و در صنعت اطلاعات در حال استفاده است .
کليه استانداردها ابتدا توسط شرکتهاي مهم به صورت RFC يا RFP تهيه شده سپس با در معرض عموم گذاشتن آن ، پيشنهادات مختلف دريافت و پس از ايجاد اصلاحات به راي گيري سپرده مي شود. مستندات استانداردهاي OMG به صورت رايگان در اختيار عموم قرار داده مي شود.
٣ـ معرفي OMA
OMG مدل مرجع را به منظور مشخص نمودن معماري سطح بالا قطعات شي ءگرا معرفي کرده است . مدل مرجع ويژگيهاي کلي بسته ها، اينترفيس ها و پروتکلهايي را در ساختار OMA مشخص مي کند اما به تعريف جزئيات نمي پردازد [٥].
مدل مرجع OMA که در شکل (١) به نمايش درآمده است داراي پنج بخش اصلي است .
. در بخش مرکزي مدل که قلب ارتباطي آن نيز مي باشد دلال درخواست هاي اشياء يا ORB٥ قرار گرفته است .
اين بخش Client ها را قادر مي سازد که با اشياء در يک محيط گسترده ارتباط برقرار کنند. OMG در اين بخش مشخصات CORBA را تعريف کرده است که قابليت فراخواني عمليات روي اشياء را در محيط شبکه و در يک محيط ناهمگون شامل سيستم عاملها يا زبانهاي برنامه نويسي مختلف ممکن مي سازد. درباره CORBA در قسمتهاي بعدي توضيحات مفصل تري ارائه خواهد شد.
. Object Services مجموعه اي از سرويسها و اينترفيس ها را شامل مي شود که عملکردهاي پايه را براي تحقق مديريت اشياء تعريف مي کند. سرويسهاي CORBA محيطي را فراهم مي کنند که اشياء به صورت مستقل بتوانند وظايفشان را انجام داده و همچنان رابطه آنها تعريف شده با سطح دسترسي قابل کنترل باقي بماند.
مشخصات اين بخش در OMG تحت عنوان CORBAservices مستند شده اند. مشخصات عمومي اين سرويس ها بعدا توضيح داده خواهد شد. . CORBA Facilities شامل مجموعه اي از کلاسها و اشياء هستند که براي کاربردهاي عام در شاخه هاي مختلف صنعت نرم افزار مي توانند مورد استفاده قرار بگيرد. اين بخش که به آن تسهيلات افقي ١ هم گفته مي شود، فعلا محدود به چهار بخش تسهيلات چاپ کردن ، زمان , بين المللي سازي و واسط موبايل مي باشد.
. Domain Interface که به آن تسهيلات عمودي ٢ هم گفته مي شود مجموعه اي از اينترفيس هاي استاندارد براي مصارف خاص در دنياي نرم افزار مي باشد. از جمله کاربردهاي آن مي توان به کاربردهاي سيستمهاي مالي ، توليد صنعتي و بهداشتي .پزشکي اشاره نمود.
استانداردهاي UMS-DAF [٦], DAIS [٧] و
3HDAIS [٨] از جمله استانداردهاي اين بخش است که همانطور که قبلا گفته شد در بخش اتوماسيون صنعتي و اسکادا کاربرد دارد. معرفي اين استانداردها مجال ديگري مي طلبد.
. Application Object به بخشي در اين معماري گفته مي شود که اختصاص به برنامه هاي کاربردي کاربران دارد. اين برنامه ها چه استاندارد شده يا نشده باشند از طريق ORB مي توانند به سرويسهاي تعريف شده در بخشهاي قبلي يا حتي با يکديگر ارتباط برقرار کنند و عمليات اشياء آنها را درخواست و اجرا نمايند.
در اينجا ذکر يک نکته ضروري است که با اينکه ساختار OMA بر مبناي روش شي ءگرا تدوين شده است اما لازم نيست که خود برنامه هايي که هر يک از نقشها در ساختار OMA بازي مي کنند بر مبناي شي ءگرايي تهيه شده باشند.
تنها کافي است که اينترفيس هاي آنها منطبق با مفهوم OMA باشد.
٤ـ معرفي CORBA
CORBA يک استاندارد آزاد٤ است که به منظور ايجاد ارتباط بين اشياء تحت محيط هاي ناهمگون تحت شبکه توسط OMG تهيه شده است [٩] و [٣,٤]. ORB در معماري OMA به برنامه يا سرويسي اطلاق مي شود که مشخصات CORBA را پياده سازي کرده است . شرکتهاي مختلفي ORB هايي را تهيه و در دسترس عموم قرار داده اند. از ORB هاي معروف و معتبر مي توان به VisiBroker، Orbacus،TAO ،Orbix ،IONA ،orb2 ، BEASystem،OmniORB ، و MICO اشاره نمود. از آنجا که مشخصات CORBA بسيار گسترده بوده و داراي بخشهاي اختياري و اجباري مي باشد، لذا ORB شرکتهاي مختلف ضمن فراهم آوردن بخشهاي اجباري در بخشهاي اختياري ممکن است بعضي را پياده و بعضي ديگر را پياده نکرده باشند.
اهداف اصلي CORBA به شرح زير مي باشد :
- ساده سازي ارتباط نرم افزارهاي توزيع شده را از طريق ايجاد قابليتهاي مکان يابي و فعال سازي اشياء، مارشالينگ ٥ پارامترها، مالتي پلکس کردن درخواست ها و اداره کردن خطا٦ فراهم مي آورد.
- ايجاد بستر پايه براي سرويسهاي لايه هاي بالاتر -
در CORBA درخواست از شي ء همراه با نتيجه آن
(پاسخ ) به عنوان مکانيزم ارتباطي پايه درنظر گرفته مي شود.
همراه هر درخواست تعداد صفر يا بيشتر پارامتر مي تواند ارسال شود. ORB درخواستها را دريافت کرده و ترتيب انجام آن را مي دهد. اين کار شامل مارشالينگ پارامترها، پيدا کردن شي ء اجرايي و ديمارشالينگ پارامترها و فعال کردن توابع (متدها) مي باشد. پاسخ عمليات شي ء که مي تواند شامل ايجاد خطا نيز باشد توسط ORB به درخواست کننده (Client) برگردانده شود. شکل (٢) اين پروسه را نشان مي دهد.
٥ـ مارشالينگ (Marshalling) به عمل مرتب سازي پارامترهاي ارسالي بين اشياء براي ارسال به صورت stream از طرف فرستنده (دمارشالينگ De-marshalling) بازيابي اين پارامترها از stream دريافتي گيرنده گفته مي شود.

شکل (٢) مکانيزم ارتباطي پايه CORBA
از ديد Client انجام اين عمليات مانند فراخواني متدهاي يک شي ء محلي است که در داخل برنامه Client پياده سازي شده است . در CORBA پارامترها مي توانند به يکي از سه صورت ورودي ، خروجي يا ورودي -خروجي همراه درخواست ها مورد تبادل قرار گيرند. در حالت ورودي ، شي ء سرويس دهنده فقط به صورت خواندني به پارامتر دسترسي دارد و در حالت خروجي مقدار شي ء قابل تغيير است . در CORBA علاوه بر انواع داده اي ساده نظير integer،long ،character مي توان انواع پيچيده تر مانند string،structure و يا union براي پارامترهاي مورد تبادل در نظر گرفت . همچنين از انواع آرايه و سري ١ با طول مشخص و نا مشخص از انواع داده ساده و پيچيده پشتيباني مي شود که انعطاف پذيري بالايي را جهت طراحي اينترفيس هاي ساخت يافته فراهم مي آورد. مشخصه کليدي ORB دراين واقعيت نهفته است که ارتباط مجازي Client با شي ء سرويس دهنده (که گاهي با عنوان شي ء هدف ٢ از آن ياد مي شود) مستقل از نحوه ارتباط واقعي ، پياده سازي شي ء هدف يا سيستم عامل انجام مي شود.
در واقع ORB ويژگيهاي زير را از ديد Client مخفي مي سازد :
- مکان شي ء : Client لازم نيست بداند که پياده سازي شي ء هدف کجا انجام شده (روي همان ماشين است يا روي ماشين ديگري در شبکه ، در يک پروسه ديگر انجام مي شود يا در همان پروسه )
- پياده سازي شي ء : Client لازم نيست بداند که پياده سازي شي ء چگونه و با چه زبان برنامه نويسي يا روي چه سيستم عاملي انجام شده است يا اينکه روي چه سخت افزاري اجرا مي شود.
- حالت اجرايي شي ء : وقتي Client درخواستي از يک شي ء مي کند لازم نيست که بداند آيا در آن لحظه شي ء فعال هست يا نه . ORB در صورت فعال نبودن آن را فعال مي کند.
- مکانيزم ارتباطي با شي ء : Client از نحوه ارتباط با شي ء بي خبر است در واقع نمي داند اين ارتباط به صورت ارتباط شبکه از طريق مثلا TCP.IP است يا به صورت فراخواني متد محلي ٣ ايجاد مي شود.
ORB با مخفي کردن اين فعاليتهاي سطح پايين ، اين امکان را براي برنامه سازان فراهم مي کند که هزينه و وقت خود را روي کاربرد اصلي خود متمرکز کنند.
از ديگر ويژگيهاي CORBA که در بالا به صورت ضمني به آن اشاره شد، مستقل بودن زبان پياده سازي Client شي ء و هدف است . در واقع CORBA نگاشتهايي را از زبان اينترفيس تعريف شده خود (OMG.IDL)٤ با زبانهاي برنامه نويسي نظير C، +C+،Java ,Ada ،Cobol و .... تعريف مي کند و از اين طريق ارتباط بين اشياء در زبانهاي مختلف را فراهم مي نمايد.
٥ـ معرفي Object Services
همانطور که قبلا توضيح داده شد Object Services بخشي از معماري OMA مي باشد. اين سرويس ها عملکرد پايه اي براي مدلسازي منطقي و انباره ٥ فيزيکي اشياء فراهم مي سازند. عملکردهاي Object Services از طريق ORB براي بقيه سيستم قابل دسترسي مي باشد. با توجه به آزاد بودن اين استاندارد ها، در پياده سازي مي توان اينترفيس هاي خاصي را علاوه بر مشخصات تعيين شده OMG پشتيباني نمود و عملکردهاي جديدي را ارائه نمود.
عملکردهايي عمومي که Object Services مي توانند پشتيباني کنند از قرار زير مي باشد :
- مديريت کلاسها : قابليت ايجاد، تغيير، پاک کردن ، کپي کردن و کنترل تعاريف کلاسها و اينترفيس به کلاسها و همچنين روابط بين آنها
- مديريت نمونه ها١ : قابليت ايجاد، تغيير، پاک کردن ، کپي کردن ، منتقل کردن ، فراخواني و کنترل اشياء و رابطه بين آنها
- انباره کردن : قابليت انباره کردن به صورت دائمي يا گذرا و براي اشياء کوچک يا بزرگ شامل حالت آنها و متدهاي آنها
- همخواني ٢ : قابليت ايجاد همخواني و سازگاري ٣ حالت اشياء هم به صورت تکي (مثلا از طريق قفلهاي نرم افزاري ) و هم به صورت جمعي (مثلا از طريق تراکنشها٤)
- امنيت : قابليت تعريف و اعمال شرط در سطحهاي مختلف براي دسترسي به اشياء و واحدهاي آنها
- Query : قابليت انتخاب اشياء يا کلاسها از مجموعه هاي تعريف شده
- نگارش : قابليت نگهداري ، مديريت و همخواني کردن نگارشهاي مختلف اشياء
در مستندات CORBAservices که شامل مشخصات Object Services مي شود، قطعات مختلفي تعريف شده است [١٠]. اين مستندات شامل مجموعه تعاريف اينترفيس هاي OMG IDL، توصيف رفتار عمليات و همچنين سلسله مراتب درخواستها از اين قطعات مي باشد.
در اينجا به شرح کلي بعضي از مهمترين اين قطعات مي پردازيم .
٥ـ١ـ سرويس نامگذاري
اين سرويس قابليت الصاق يک نام براي يک شي ء را از طريق Naming Context به وجود مي آورد. Naming Context شي اي است که شامل مجموعه اي از نام و آدرس اشياء مي باشد به نحوي که هر شي ء به صورت يکتا آدرس دهي مي شود. نحوه نامگذاري در اين سرويس از ساختار گرافي يا درختي (مشابه دايرکتوري يک فايل سيستم ) پيروي مي کند. با تعريف تنه و شاخه ها مي توان به تعداد دلخواه دسته هاي طبقه بندي شده ايجاد کرد. در نهايت روي برگهاي اين شاخه ها نام شي ءهاي فيزيکي قرار مي گيرند که اتصال به آدرس فيزيکي در آنجا ذخيره مي گردد. (شکل ٣)
اين سرويس به Client ها کمک مي کند اشياء هدف را بدون لزوم دانستن محل پياده سازي آنها ره گيري کرده و از سرويسهاي آنها در يک محيط گسترده بهره مند شوند. در صورت تغييرمکان اشياء هدف کافي است که اين اشياء فقط به سرويس نامگذاري اطلاع دهند و لازم نيست به تک تک Client ها (جاري و آينده ) مکان خود را اعلام نمايند.
در انجام برخي از عمليات ممکن است ORB از Object Service هم در صورت لزوم استفاده کند. براي مثال در حالتي که سرويس نامگذاري در سيستم موجود باشد، Clientها مي توانند به جاي آدرس دادن مستقيم به شي ء از سيستم نامگذاري که توسط اين سرويس فراهم مي شود استفاده کند. در اين صورت ORB درخواست Client را دريافت کرده ، براي مشخص کردن آدرس شي ء اجرايي از سرويس نامگذاري درخواست آدرس کند و پس از دريافت آدرس مستقيم شي ء از سرويس نامگذاري بقيه کارها را صورت دهد.
٥ـ٢ـ سرويس رويداد
سرويس رويداد به منظور فراهم آوردن ارتباط آسنکرون بين توليدکنندگان و مصرف کنندگان رويداد به شکل انعطاف پذيري تعريف شده است .

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