Common Object Request Broker Architecture
کامن آبجیکٹ ریکویسٹ بروکر آرکیٹیکچر (کوربا) ایک معیار ہے جس کی وضاحت آبجیکٹ مینجمنٹ گروپ (او ایم جی) نے کی ہے جو متنوع پلیٹ فارمز پر تعینات کردہ سسٹمز کے مواصلات کو آسان بنانے کے لیے ڈیزائن کیا گیا ہے۔ کوربا مختلف آپریٹنگ سسٹمز، پروگرامنگ زبانوں اور کمپیوٹنگ ہارڈ ویئر پر سسٹمز کے درمیان تعاون کو قابل بناتا ہے۔ کوربا آبجیکٹ پر مبنی ماڈل استعمال کرتا ہے حالانکہ کوربا استعمال کرنے والے نظاموں کو آبجیکٹ پر مبنی ہونا ضروری نہیں ہے۔ کوربا تقسیم شدہ آبجیکٹ پیراڈائم کی ایک مثال ہے۔ جائزہ کوربا مختلف زبانوں میں لکھے گئے سافٹ ویئر اور مختلف کمپیوٹرز پر چلنے والے سافٹ ویئر کے درمیان مواصلات کو قابل بناتا ہے۔ مخصوص آپریٹنگ سسٹمز، پروگرامنگ زبانوں، اور ہارڈ ویئر پلیٹ فارمز سے نفاذ کی تفصیلات کو کوربا استعمال کرنے والے ڈویلپرز کی ذمہ داری سے ہٹا دیا جاتا ہے۔ کوربا ایک ہی ایڈریس اسپیس (ایپلی کیشن) یا ریموٹ ایڈریس اسپیس (ایک ہی میزبان، یا نیٹ ورک پر ریموٹ میزبان) میں رہنے والے ایپلی کیشن آبجیکٹ کے درمیان میتھڈ کال سیمنٹکس کو معمول بناتا ہے۔ ورژن 1 اکتوبر 1991 میں جاری کیا گیا تھا۔ کوربا ایک انٹرفیس ڈیفینیشن لینگویج (آئی ڈی ایل) کا استعمال کرتا ہے تاکہ ان انٹرفیس کی وضاحت کی جا سکے جو بیرونی دنیا کو پیش کرتے ہیں۔ کوربا پھر آئی ڈی ایل سے ایک مخصوص نفاذ کی زبان جیسے سی + + یا جاوا کی نقشہ سازی کی وضاحت کرتا ہے۔ اڈا، سی، سی + +، سی + + 11، کوبول، جاوا، لیسپ، پی ایل/آئی، آبجیکٹ پاسکل، ازگر، روبی اور سمال ٹاک کے لیے معیاری نقشے موجود ہیں۔ سی #، ایرلانگ، پرل، ٹی سی ایل اور ویژول بیسک کے لیے غیر معیاری نقشے موجود ہیں جو ان زبانوں کے لیے لکھے گئے آبجیکٹ ریکویسٹ بروکرز (او آر بی) کے ذریعے نافذ کیے گئے ہیں۔ کوربا کی تفصیلات سے پتہ چلتا ہے کہ ایک او آر بی ہوگا جس کے ذریعے ایک ایپلی کیشن دیگر اشیاء کے ساتھ تعامل کرے گی۔ اس طرح اسے عملی طور پر لاگو کیا جاتا ہے: ایپلی کیشن او آر بی کو شروع کرتی ہے، اور ایک اندرونی آبجیکٹ اڈاپٹر تک رسائی حاصل کرتی ہے، جو حوالہ شمار، آبجیکٹ (اور حوالہ) فوری پالیسیاں، اور آبجیکٹ لائف ٹائم پالیسیاں جیسی چیزوں کو برقرار رکھتی ہے۔ آبجیکٹ اڈاپٹر پیدا شدہ کوڈ کلاسوں کی مثالوں کو رجسٹر کرنے کے لیے استعمال ہوتا ہے۔ جنریٹڈ کوڈ کلاسز یوزر آئی ڈی ایل کوڈ کو مرتب کرنے کا نتیجہ ہیں، جو اعلی سطح کے انٹرفیس کی تعریف کو صارف کی ایپلی کیشن کے استعمال کے لیے او ایس اور زبان سے متعلق مخصوص کلاس بیس میں ترجمہ کرتا ہے۔ یہ قدم کوربا سیمنٹکس کو نافذ کرنے اور کوربا انفراسٹرکچر کے ساتھ انٹرفیس کرنے کے لیے ایک صاف ستھرا صارف عمل فراہم کرنے کے لیے ضروری ہے۔ کچھ آئی ڈی ایل نقشوں کو دوسروں کے مقابلے میں استعمال کرنا زیادہ مشکل ہوتا ہے۔ مثال کے طور پر، جاوا کی نوعیت کی وجہ سے، آئی ڈی ایل-جاوا میپنگ کافی سیدھی ہے اور جاوا ایپلی کیشن میں کوربا کے استعمال کو بہت آسان بناتی ہے۔ یہ آئی ڈی ایل سے پائیتھن میپنگ کے بارے میں بھی سچ ہے۔ سی + + میپنگ کے لیے پروگرامر کو ڈیٹا ٹائپ سیکھنے کی ضرورت ہوتی ہے جو سی + + اسٹینڈرڈ ٹیمپلیٹ لائبریری (ایس ٹی ایل) سے پہلے کی ہوتی ہے۔ اس کے برعکس، سی + + 11 نقشہ سازی استعمال کرنا آسان ہے، لیکن ایس ٹی ایل کے بھاری استعمال کی ضرورت ہے۔ چونکہ سی زبان آبجیکٹ پر مبنی نہیں ہے، اس لیے آئی ڈی ایل سے سی میپنگ کے لیے سی پروگرامر کی ضرورت ہوتی ہے کہ وہ دستی طور پر آبجیکٹ پر مبنی خصوصیات کی تقلید کرے۔ ایک ایسا نظام بنانے کے لیے جو کوربا پر مبنی تقسیم شدہ آبجیکٹ انٹرفیس کا استعمال کرتا ہے یا اسے نافذ کرتا ہے، ایک ڈویلپر کو یا تو آئی ڈی ایل کوڈ حاصل کرنا چاہیے یا لکھنا چاہیے جو آبجیکٹ پر مبنی انٹرفیس کو اس منطق کی وضاحت کرتا ہے جسے سسٹم استعمال کرے گا یا نافذ کرے گا۔ عام طور پر، او آر بی کے نفاذ میں ایک ٹول شامل ہوتا ہے جسے آئی ڈی ایل مرتب کہا جاتا ہے جو آئی ڈی ایل انٹرفیس کو سسٹم کے اس حصے میں استعمال کے لیے ٹارگٹ زبان میں ترجمہ کرتا ہے۔ ایک روایتی مرتب پھر ایپلیکیشن میں استعمال کے لیے لنک ایبل آبجیکٹ فائلیں بنانے کے لیے تیار کردہ کوڈ کو مرتب کرتا ہے۔ یہ خاکہ اس بات کی وضاحت کرتا ہے کہ پیدا شدہ کوڈ کو کوربا کے بنیادی ڈھانچے کے اندر کس طرح استعمال کیا جاتا ہے: یہ اعداد و شمار کوربا کا استعمال کرتے ہوئے ریموٹ انٹر پروسس مواصلات کے لیے اعلی سطحی نمونے کی وضاحت کرتا ہے۔ کوربا کی تفصیلات ڈیٹا ٹائپنگ، مستثنیات، نیٹ ورک پروٹوکول، مواصلاتی ٹائم آؤٹ وغیرہ کو مزید حل کرتی ہیں۔ مثال کے طور پر: عام طور پر سرور سائیڈ میں پورٹیبل آبجیکٹ اڈاپٹر (پی او اے) ہوتا ہے جو کالز کو یا تو مقامی ملازمین کو یا (بوجھ کو متوازن کرنے کے لیے) دوسرے سرورز پر ری ڈائریکٹ کرتا ہے۔ کوربا کی تفصیلات (اور اس طرح یہ اعداد و شمار) تقسیم شدہ نظام کے مختلف پہلوؤں کو ایپلی کیشن پر چھوڑ دیتے ہیں تاکہ آبجیکٹ لائف ٹائمز (اگرچہ حوالہ شمار کے سیمنٹکس ایپلی کیشنز کے لیے دستیاب ہیں)، ریڈنڈنسی/فیل اوور، میموری مینجمنٹ، ڈائنامک لوڈ بیلنس، اور ایپلی کیشن پر مبنی ماڈل جیسے ڈسپلے/ڈیٹا/کنٹرول سیمنٹکس کے درمیان علیحدگی (جیسے۔ ماڈل ویو کنٹرولر) وغیرہ دیکھیں۔ صارفین کو زبان اور پلیٹ فارم غیر جانبدار ریموٹ پروسیجر کال (آر پی سی) کی تفصیلات فراہم کرنے کے علاوہ، کوربا عام طور پر درکار خدمات جیسے لین دین اور سیکیورٹی، واقعات، وقت، اور دیگر ڈومین مخصوص انٹرفیس ماڈلز کی وضاحت کرتا ہے۔ ورژن کی تاریخ یہ جدول کوربا کے معیاری ورژن کی تاریخ پیش کرتا ہے۔ نوکر دعوت کا ہدف ہوتا ہے جس میں دور دراز کے طریقہ کار کی دعاؤں کو سنبھالنے کے طریقے ہوتے ہیں۔ نئے کوربا ورژن میں، ریموٹ آبجیکٹ (سرور سائیڈ پر) کو آبجیکٹ (جو ریموٹ دعوتوں سے بے نقاب ہوتا ہے) اور سروینٹ (جس پر سابقہ حصہ طریقہ کار کو آگے بھیجتا ہے) میں تقسیم کیا جاتا ہے۔ یہ فی دور دراز آبجیکٹ ایک نوکر ہو سکتا ہے، یا ایک ہی نوکر کئی (ممکنہ طور پر تمام) آبجیکٹ کو سپورٹ کر سکتا ہے، جو دیئے گئے پورٹیبل آبجیکٹ اڈاپٹر سے وابستہ ہے۔ ہر شے کے لیے نوکر کو "ایک بار اور ہمیشہ کے لیے" سیٹ یا پایا جا سکتا ہے (نوکر کو چالو کرنا) یا ہر بار اس شے پر طریقہ کار کو مدعو کرنے پر متحرک طور پر منتخب کیا جا سکتا ہے (نوکر کا مقام)۔ سروینٹ لوکیٹر اور سروینٹ ایکٹیویٹر دونوں کالز کو دوسرے سرور کو فارورڈ کر سکتے ہیں۔ مجموعی طور پر، یہ نظام کئی مشینوں کے درمیان درخواستوں کو تقسیم کرتے ہوئے بوجھ کو متوازن کرنے کا ایک بہت طاقتور ذریعہ فراہم کرتا ہے۔ آبجیکٹ پر مبنی زبانوں میں، ریموٹ آبجیکٹ اور اس کے سروینٹ دونوں آبجیکٹ پر مبنی پروگرامنگ کے نقطہ نظر سے آبجیکٹ ہوتے ہیں۔ اوتار ایک نوکر کو کوربا آبجیکٹ سے جوڑنے کا عمل ہے تاکہ وہ درخواستوں کی خدمت کر سکے۔ اوتار ورچوئل کوربا آبجیکٹ کے لیے ایک ٹھوس سروینٹ فارم فراہم کرتا ہے۔ ایکٹیویشن اور ڈی ایکٹیویشن صرف کوربا آبجیکٹ کا حوالہ دیتے ہیں، جبکہ اوتار اور ایتھریلائزیشن کی اصطلاحات نوکروں کا حوالہ دیتی ہیں۔ تاہم، اشیاء اور نوکروں کی عمر آزاد ہوتی ہے۔ آپ ہمیشہ ایکٹیویٹ _ آبجیکٹ () کو کال کرنے سے پہلے نوکر کو اوتار بناتے ہیں، لیکن اس کے برعکس بھی ممکن ہے، تخلیق _ حوالہ () نوکر کو اوتار بنائے بغیر کسی شے کو چالو کرتا ہے، اور نوکر کا اوتار بعد میں نوکر منیجر کے مطالبے پر کیا جاتا ہے۔ (پی او اے) کوربا آبجیکٹ ہے جو سرور سائیڈ ریموٹ انوکیشن ہینڈلر کو ریموٹ آبجیکٹ اور اس کے سروینٹ میں تقسیم کرنے کا ذمہ دار ہے۔ آبجیکٹ کو دور دراز کی دعاؤں کے لیے بے نقاب کیا جاتا ہے، جبکہ نوکر ان طریقوں پر مشتمل ہوتا ہے جو دراصل درخواستوں کو سنبھال رہے ہوتے ہیں۔ ہر شے کے لیے نوکر کو یا تو مستحکم طور پر (ایک بار) یا متحرک طور پر (ہر دور دراز کی دعوت کے لیے) منتخب کیا جا سکتا ہے، دونوں صورتوں میں کال کو دوسرے سرور پر بھیجنے کی اجازت دی جا سکتی ہے۔ سرور کی طرف، پی او اے ایک درخت جیسی ساخت بناتے ہیں، جہاں ہر پی او اے ایک یا زیادہ اشیاء کی خدمت کے لیے ذمہ دار ہوتا ہے۔ اس درخت کی شاخوں کو آزادانہ طور پر چالو/غیر فعال کیا جا سکتا ہے، نوکر کے مقام یا چالو کرنے کے لیے مختلف کوڈ اور درخواست کو سنبھالنے کی مختلف پالیسیاں ہیں۔ خصوصیات درج ذیل کچھ انتہائی اہم طریقوں کی وضاحت کرتا ہے جن سے کوربا کو تقسیم شدہ اشیاء کے درمیان مواصلات کو آسان بنانے کے لیے استعمال کیا جا سکتا ہے۔ آبجیکٹس بائی ریفرنس یہ حوالہ یا تو سٹرنگفائیڈ یونیفارم ریسورس لوکیٹر (یو آر ایل)، نیم سروس لک اپ (ڈومین نیم سسٹم (ڈی این ایس) کی طرح) کے ذریعے حاصل کیا جاتا ہے، یا کال کے دوران میتھڈ پیرامیٹر کے طور پر پاس ان کیا جاتا ہے۔ آبجیکٹ حوالہ جات ہلکی پھلکی اشیاء ہیں جو حقیقی آبجیکٹ (ریموٹ یا لوکل) کے انٹرفیس سے ملتی ہیں۔ طریقہ کار او آر بی کو بعد کی کالوں میں حوالہ کے نتیجے پر کال کرتا ہے اور جواب، کامیابی یا ناکامی کا انتظار کرتے ہوئے تھریڈ کو بلاک کرتا ہے۔ پیرامیٹرز، ریٹرن ڈیٹا (اگر کوئی ہو)، اور مستثنی ڈیٹا کو مقامی زبان اور او ایس میپنگ کے مطابق او آر بی کے ذریعے اندرونی طور پر مارشل کیا جاتا ہے۔ ڈیٹا بائی ویلیو کوربا انٹرفیس ڈیفینیشن لینگویج زبان اور او ایس غیر جانبدار انٹر آبجیکٹ کمیونیکیشن کی تعریف فراہم کرتی ہے۔ کوربا آبجیکٹ حوالہ کے ذریعے منتقل کیے جاتے ہیں، جبکہ ڈیٹا (انٹیجرز، ڈبلز، اسٹرکٹس، اینمز وغیرہ)۔ قدر سے گزرتے ہیں۔ آبجیکٹس بائی ریفرنس اور ڈیٹا بائی ویلیو کا امتزاج کلائنٹس اور سرورز کو مرتب کرتے وقت زبردست ڈیٹا ٹائپنگ کو نافذ کرنے کا ذریعہ فراہم کرتا ہے، پھر بھی کوربا کے مسئلے کی جگہ میں موجود لچک کو برقرار رکھتا ہے۔ آبجیکٹس بائی ویلیو (او بی وی) دور دراز اشیاء کے علاوہ، کوربا اور آر ایم آئی-آئی آئی او پی او بی وی اور ویلیو ٹائپ کے تصور کی وضاحت کرتے ہیں۔ ویلیو ٹائپ آبجیکٹ کے طریقوں کے اندر کوڈ کو ڈیفالٹ کے طور پر مقامی طور پر انجام دیا جاتا ہے۔ اگر او بی وی دور دراز سے موصول ہوا ہے، تو مطلوبہ کوڈ یا تو دونوں طرف سے جانا جاتا ترجیحی ہونا چاہیے یا بھیجنے والے سے متحرک طور پر ڈاؤن لوڈ کیا جانا چاہیے۔ اسے ممکن بنانے کے لیے، او بی وی کی وضاحت کرنے والے ریکارڈ میں کوڈ بیس ہوتا ہے جو کہ یو آر ایل کی جگہ سے الگ فہرست ہے جہاں سے یہ کوڈ ڈاؤن لوڈ کیا جانا چاہیے۔ او بی وی میں ریموٹ طریقے بھی ہو سکتے ہیں۔ کوربا اجزاء ماڈل (سی سی ایم) کوربا اجزاء ماڈل (سی سی ایم) کوربا تعریفوں کے خاندان میں ایک اضافہ ہے۔ اسے کوربا 3 کے ساتھ متعارف کرایا گیا تھا اور یہ کوربا اجزاء کے لیے ایک معیاری ایپلی کیشن فریم ورک کی وضاحت کرتا ہے۔ اگرچہ "زبان پر منحصر انٹرپرائز جاوا بینز (ای جے بی)" پر منحصر نہیں ہے، یہ ای جے بی کی ایک زیادہ عام شکل ہے، جو ای جے بی کی وضاحت کردہ دو کے بجائے اجزاء کی چار اقسام فراہم کرتی ہے۔ یہ ایسے اداروں کا خلاصہ فراہم کرتا ہے جو پورٹس نامی اچھی طرح سے طے شدہ نامی انٹرفیس کے ذریعے خدمات فراہم اور قبول کر سکتے ہیں۔ سی سی ایم میں ایک جزو کنٹینر ہوتا ہے، جہاں سافٹ ویئر کے اجزاء کو تعینات کیا جا سکتا ہے۔ کنٹینر خدمات کا ایک مجموعہ پیش کرتا ہے جسے اجزاء استعمال کر سکتے ہیں۔ ان خدمات میں نوٹیفکیشن، تصدیق، استقامت اور ٹرانزیکشن پروسیسنگ شامل ہیں (لیکن ان تک محدود نہیں ہیں)۔ یہ سب سے زیادہ استعمال ہونے والی خدمات ہیں جن کی کسی بھی تقسیم شدہ نظام کو ضرورت ہوتی ہے، اور، ان خدمات کے نفاذ کو سافٹ ویئر کے اجزاء سے جزو کنٹینر میں منتقل کرنے سے، اجزاء کی پیچیدگی ڈرامائی طور پر کم ہو جاتی ہے۔ پورٹیبل انٹرسیپٹر "ہکس" ہیں، جو کوربا اور آر ایم آئی-آئی آئی او پی کے ذریعے کوربا نظام کے سب سے اہم افعال میں ثالثی کے لیے استعمال ہوتے ہیں۔ کوربا معیار درج ذیل قسم کے انٹرسیپٹرز کی وضاحت کرتا ہے: آئی او آر انٹرسیپٹرز موجودہ سرور کے ذریعہ پیش کردہ دور دراز اشیاء کے نئے حوالوں کی تخلیق میں ثالثی کرتے ہیں۔ کلائنٹ انٹرسیپٹر عام طور پر کلائنٹ (کالر) کی طرف سے ریموٹ میتھڈ کالز میں ثالثی کرتے ہیں۔ اگر آبجیکٹ سروینٹ اسی سرور پر موجود ہے جہاں طریقہ کار استعمال کیا جاتا ہے، تو وہ مقامی کالوں میں بھی ثالثی کرتے ہیں۔ سرور انٹرسیپٹر سرور (ہینڈلر) سائیڈ پر ریموٹ میتھڈ کالز کو سنبھالنے میں ثالثی کرتے ہیں۔ انٹرسیپٹر مخصوص معلومات کو بھیجے جانے والے پیغامات اور بنائے جانے والے آئی او آر سے منسلک کر سکتے ہیں۔ اس معلومات کو بعد میں ریموٹ سائیڈ پر متعلقہ انٹرسیپٹر کے ذریعے پڑھا جا سکتا ہے۔ انٹرسیپٹر فارورڈنگ کے استثناء کو بھی پھینک سکتے ہیں، درخواست کو دوسرے ہدف کی طرف ری ڈائریکٹ کر سکتے ہیں۔ جنرل انٹر او آر بی پروٹوکول (جی آئی او پی) جی آئی او پی ایک تجریدی پروٹوکول ہے جس کے ذریعے آبجیکٹ ریکویسٹ بروکرز (او آر بی) بات چیت کرتے ہیں۔ پروٹوکول سے وابستہ معیارات آبجیکٹ مینجمنٹ گروپ (او ایم جی) کے ذریعے برقرار رکھے جاتے ہیں۔ جی آئی او پی فن تعمیر کئی ٹھوس پروٹوکول فراہم کرتا ہے، جن میں شامل ہیں: انٹرنیٹ انٹر او آر بی پروٹوکول (آئی آئی او پی)-انٹرنیٹ انٹر آرب پروٹوکول انٹرنیٹ پر استعمال کے لیے جی آئی او پی کا نفاذ ہے، اور جی آئی او پی پیغامات اور ٹی سی پی/آئی پی پرت کے درمیان نقشہ سازی فراہم کرتا ہے۔ ایس ایس ایل انٹرورب پروٹوکول (ایس ایس ایل آئی او پی)-ایس ایس ایل آئی او پی ایس ایس ایل پر آئی آئی او پی ہے، جو خفیہ کاری اور تصدیق فراہم کرتا ہے۔ ہائپر ٹیکسٹ انٹرورب پروٹوکول (ایچ ٹی آئی او پی)-ایچ ٹی آئی او پی ایچ ٹی ٹی پی پر آئی آئی او پی ہے، جو شفاف پراکسی بائی پاسنگ فراہم کرتا ہے۔ زپڈ آئی او پی (زیڈ آئی او پی)-جی آئی او پی کا ایک زپڈ ورژن جو بینڈوتھ کے استعمال کو کم کرتا ہے۔ وی ایم سی آئی ڈی (وینڈر مائنر کوڈسیٹ آئی ڈی) ہر معیاری کوربا رعایت میں استثنی کے ذیلی زمرے کو نامزد کرنے کے لیے ایک معمولی کوڈ شامل ہوتا ہے۔ معمولی مستثنی کوڈ غیر دستخط شدہ لمبے قسم کے ہوتے ہیں اور 20 بٹ "وینڈر مائنر کوڈسیٹ آئی ڈی" (وی ایم سی آئی ڈی) پر مشتمل ہوتے ہیں، جو ہائی آرڈر 20 بٹس پر قابض ہوتا ہے، اور معمولی کوڈ مناسب جو لو آرڈر 12 بٹس پر قابض ہوتا ہے۔ معیاری مستثنیات کے لیے معمولی کوڈز کو او ایم جی کو تفویض کردہ وی ایم سی آئی ڈی کے ذریعے پیش کیا جاتا ہے، جس کی تعریف غیر دستخط شدہ طویل مستقل کوربا:: او ایم جی وی ایم سی آئی ڈی کے طور پر کی گئی ہے، جس میں او ایم جی کو مختص کردہ وی ایم سی آئی ڈی ہائی آرڈر 20 بٹس پر قابض ہے۔ معیاری مستثنیات سے وابستہ معمولی مستثنیات کوڈ جو ٹیبل 3-13 میں صفحہ 3-58 پر پائے جاتے ہیں، OMGVMCID کے ساتھ ایڈ کیے جاتے ہیں تاکہ معمولی کوڈ ویلیو حاصل کی جا سکے جو ex _ باڈی ڈھانچے میں واپس کی جاتی ہے (صفحہ 3-52 پر سیکشن 3.17.1، "معیاری استثناء کی تعریفیں"، اور صفحہ 3.17.2، صفحہ 3-58 پر "معیاری معمولی استثناء کوڈز" دیکھیں)۔ وینڈر کو تفویض کردہ جگہ کے اندر، معمولی کوڈز کو اقدار کی تفویض وینڈر پر چھوڑ دی جاتی ہے۔ دکاندار tagrequest@omg.org پر ای میل بھیج کر VMCIDs کے الاٹمنٹ کی درخواست کر سکتے ہیں۔ فی الحال تفویض کردہ VMCIDs کی فہرست OMG ویب سائٹ پر یہاں مل سکتی ہے: http://www.omg.org/cgi-bin/doc?vendor-tags VMCID 0 اور 0xfffff تجرباتی استعمال کے لیے مخصوص ہیں۔ وی ایم سی آئی ڈی او ایم جی وی ایم سی آئی ڈی (سیکشن 3.17.1، "معیاری استثنی کی تعریفیں"، صفحہ 3-52 پر) اور 1 سے 0 ایکس ایف او ایم جی کے استعمال کے لیے مخصوص ہیں۔ کامن آبجیکٹ ریکویسٹ بروکر: آرکیٹیکچر اینڈ اسپیسیفیکیشن (کوربا 2.3) کوربا لوکیشن (کوربالوک) کوربا لوکیشن (کوربالوک) سے مراد کوربا آبجیکٹ کے لیے ایک سٹرنگفائیڈ آبجیکٹ ریفرنس ہے جو یو آر ایل سے ملتا جلتا لگتا ہے۔ تمام کوربا پروڈکٹس کو دو او ایم جی سے متعین یو آر ایل کی حمایت کرنی چاہیے: "اور"۔ ان کا مقصد انسانی پڑھنے کے قابل اور قابل تدوین طریقہ فراہم کرنا ہے تاکہ کسی ایسے مقام کی وضاحت کی جا سکے جہاں آئی او آر حاصل کیا جا سکے۔ کوربالوک کی ایک مثال ذیل میں دکھائی گئی ہے: ایک کوربا پروڈکٹ اختیاری طور پر "" "اور" "فارمیٹس کی حمایت کر سکتا ہے۔ ان کے معنی یہ ہیں کہ وہ اس بات کی تفصیلات فراہم کرتے ہیں کہ سٹرنگفائیڈ آئی او آر کو کیسے ڈاؤن لوڈ کیا جائے (یا، بار بار، ایک اور یو آر ایل ڈاؤن لوڈ کریں جو بالآخر سٹرنگفائیڈ آئی او آر فراہم کرے گا)۔ کچھ او آر بی اضافی فارمیٹ فراہم کرتے ہیں جو اس او آر بی کے لیے ملکیتی ہیں۔ کوربا کے فوائد میں زبان اور او ایس کی آزادی، ٹیکنالوجی سے منسلک نفاذ سے آزادی، مضبوط ڈیٹا ٹائپنگ، اعلی سطح کی مطابقت، اور تقسیم شدہ ڈیٹا کی منتقلی کی تفصیلات سے آزادی شامل ہیں۔ زبان کی آزادی کوربا کو انجینئروں کو ان کے ڈیزائن کو کسی خاص سافٹ ویئر زبان میں جوڑنے کی حدود سے آزاد کرنے کے لیے ڈیزائن کیا گیا تھا۔ فی الحال بہت سی زبانیں ہیں جنہیں مختلف کوربا فراہم کنندگان کی حمایت حاصل ہے، جن میں سب سے زیادہ مقبول جاوا اور سی + + ہیں۔ سی + + 11، سی-اونلی، سمال ٹاک، پرل، اڈا، روبی، اور ازگر کے نفاذ بھی ہیں، صرف چند کا ذکر کرنے کے لیے۔ او ایس-آزادی کوربا کے ڈیزائن کا مقصد او ایس-آزاد ہونا ہے۔ کوربا جاوا (او ایس سے آزاد) کے ساتھ ساتھ لینکس/یونکس، ونڈوز، سولرس، او ایس ایکس، اوپن وی ایم ایس، ایچ پی یو ایکس، اینڈرائڈ، لنکس او ایس، وی ایکس ورکس، تھریڈ ایکس، انٹیگریٹی اور دیگر کے لیے مقامی طور پر دستیاب ہے۔ ٹیکنالوجیز سے آزادی ایک اہم مضمر فوائد میں سے ایک یہ ہے کہ کوربا انجینئروں کو مختلف نئے اور میراث کے نظاموں کے درمیان انٹرفیس کو معمول پر لانے کے قابل ہونے کے لیے ایک غیر جانبدار کھیل کا میدان فراہم کرتا ہے۔ سی، سی + +، آبجیکٹ پاسکل، جاوا، فورٹرن، ازگر، اور کسی بھی دوسری زبان یا او ایس کو ایک مربوط نظام ڈیزائن ماڈل میں ضم کرتے وقت، کوربا میدان کو برابر کرنے کا ذریعہ فراہم کرتا ہے اور مختلف ٹیموں کو نظام اور یونٹ ٹیسٹ تیار کرنے کی اجازت دیتا ہے جو بعد میں پورے نظام میں ایک ساتھ شامل ہو سکتے ہیں۔ یہ سسٹم انجینئرنگ کے بنیادی فیصلوں، جیسے تھریڈنگ، ٹائمنگ، آبجیکٹ لائف ٹائم وغیرہ کی ضرورت کو مسترد نہیں کرتا ہے۔ یہ مسائل ٹیکنالوجی سے قطع نظر کسی بھی نظام کا حصہ ہیں۔ کوربا نظام کے عناصر کو ایک مربوط نظام ماڈل میں معمول پر لانے کی اجازت دیتا ہے۔ مثال کے طور پر، ویب سرور میں جاوا سرولیٹس اور کاروباری منطق پر مشتمل مختلف کوربا سرورز اور ڈیٹا بیس تک رسائی کو لپیٹ کر ملٹی ٹائر فن تعمیر کے ڈیزائن کو آسان بنایا جاتا ہے۔ یہ کاروباری منطق کے نفاذ کو تبدیل کرنے کی اجازت دیتا ہے، جبکہ انٹرفیس کی تبدیلیوں کو کسی بھی دوسری ٹیکنالوجی کی طرح سنبھالنے کی ضرورت ہوگی۔ مثال کے طور پر، سرور کے ذریعے لپیٹا ہوا ڈیٹا بیس بیرونی انٹرفیس کو متاثر کیے بغیر بہتر ڈسک کے استعمال یا کارکردگی (یا یہاں تک کہ پورے پیمانے پر ڈیٹا بیس وینڈر کی تبدیلی) کی خاطر اپنے ڈیٹا بیس اسکیما میں تبدیلی کر سکتا ہے۔ ایک ہی وقت میں، سی + + میراث کوڈ سی/فورٹرن میراث کوڈ اور جاوا ڈیٹا بیس کوڈ سے بات کر سکتا ہے، اور ویب انٹرفیس کو ڈیٹا فراہم کر سکتا ہے۔ ڈیٹا ٹائپنگ کوربا لچکدار ڈیٹا ٹائپنگ فراہم کرتا ہے، مثال کے طور پر "کوئی بھی" ڈیٹا ٹائپ۔ کوربا انسانی غلطیوں کو کم کرتے ہوئے مضبوطی سے جوڑے ہوئے ڈیٹا ٹائپنگ کو بھی نافذ کرتا ہے۔ ایسی صورت حال میں جہاں نام-قدر کے جوڑوں کو منتقل کیا جاتا ہے، یہ قابل فہم ہے کہ سرور ایک نمبر فراہم کرتا ہے جہاں ایک سٹرنگ کی توقع کی جاتی تھی۔ کوربا انٹرفیس ڈیفینیشن لینگویج اس بات کو یقینی بنانے کے لیے طریقہ کار فراہم کرتی ہے کہ صارف کوڈ طریقہ کار کے ناموں، واپسی، پیرامیٹر کی اقسام اور مستثنیات کے مطابق ہو۔ اعلی مطابقت بہت سے نفاذ (مثال کے طور پر۔ او آر بی ایکسپریس (اڈا، سی + +، اور جاوا نفاذ) اور اونی او آر بی (اوپن سورس سی + + اور ازگر نفاذ)) کے پاس تھریڈنگ اور کنکشن مینجمنٹ کی خصوصیات کو ٹیون کرنے کے اختیارات ہیں۔ تمام او آر بی نفاذ ایک جیسی خصوصیات فراہم نہیں کرتے ہیں۔ ڈیٹا کی منتقلی کی تفصیلات سے آزادی نچلی سطح کے کنکشن اور تھریڈنگ کو سنبھالتے وقت، کوربا غلطی کے حالات میں اعلی سطح کی تفصیل فراہم کرتا ہے۔ اس کی وضاحت کوربا سے متعین معیاری استثناء سیٹ اور نفاذ سے متعلق مخصوص توسیعی استثناء سیٹ میں کی گئی ہے۔ مستثنیات کے ذریعے، ایپلیکیشن اس بات کا تعین کر سکتی ہے کہ آیا کوئی کال "چھوٹے مسئلے، اس لیے دوبارہ کوشش کریں"، "سرور مر چکا ہے" یا "حوالہ سمجھ میں نہیں آتا" جیسی وجوہات کی بنا پر ناکام ہوئی ہے۔ عام اصول یہ ہے کہ مستثنی وصول نہ کرنے کا مطلب یہ ہے کہ طریقہ کال کامیابی سے مکمل ہوئی۔ یہ ڈیزائن کی ایک بہت طاقتور خصوصیت ہے۔ کمپریشن کوربا اپنے ڈیٹا کو بائنری شکل میں مارشل کرتا ہے اور کمپریشن کی حمایت کرتا ہے۔ آئی او این اے، ریمیڈی آئی ٹی، اور ٹیلی فونیکا نے کوربا معیار کی توسیع پر کام کیا ہے جو کمپریشن فراہم کرتا ہے۔ اس توسیع کو زی او پی کہا جاتا ہے اور یہ اب ایک رسمی او ایم جی معیار ہے۔ مسائل اور تنقید اگرچہ کوربا نے کوڈ لکھنے اور سافٹ ویئر کی تعمیر کے انداز میں بہت کچھ پیش کیا، لیکن یہ تنقید کا موضوع رہا ہے۔ کوربا کی زیادہ تر تنقید معیار کے ناقص نفاذ سے ہوتی ہے نہ کہ خود معیار کی خامیوں سے۔ معیار کی کچھ ناکامیاں خود اس عمل کی وجہ سے تھیں جس کے ذریعے کوربا کی تفصیلات تیار کی گئیں اور بہت سے مسابقتی نفاذ کاروں کے ذریعہ حاصل کردہ ایک مشترکہ معیار لکھنے کی سیاست اور کاروبار میں موروثی سمجھوتے۔ ابتدائی نفاذ کی مطابقت پذیری کوربا کی ابتدائی وضاحتیں صرف آئی ڈی ایل کی وضاحت کرتی ہیں، نہ کہ آن دی وائر فارمیٹ کی۔ اس کا مطلب یہ تھا کہ سورس کوڈ کی مطابقت بہترین تھی جو کئی سالوں سے دستیاب تھی۔ کوربا 2 اور بعد میں اس مسئلے کو حل کیا گیا۔ لوکیشن ٹرانسپیرنسی کوربا کے لوکیشن ٹرانسپیرنسی کے تصور کو تنقید کا نشانہ بنایا گیا ہے ؛ یعنی، ایک ہی ایڈریس اسپیس میں رہنے والی اور سادہ فنکشن کال کے ساتھ قابل رسائی اشیاء کے ساتھ وہی سلوک کیا جاتا ہے جو کہیں اور رہتی ہیں (ایک ہی مشین پر مختلف عمل، یا مختلف مشینیں)۔ یہ ایک بنیادی ڈیزائن کی خامی ہے، کیونکہ یہ تمام آبجیکٹ تک رسائی کو اتنا ہی پیچیدہ بنا دیتا ہے جتنا کہ انتہائی پیچیدہ کیس (یعنی ریموٹ نیٹ ورک کال جس میں ناکامیوں کی ایک وسیع کلاس ہوتی ہے جو مقامی کالوں میں ممکن نہیں ہوتی)۔ یہ دونوں کلاسوں کے درمیان ناگزیر اختلافات کو بھی چھپاتا ہے، جس سے ایپلی کیشنز کے لیے مناسب استعمال کی حکمت عملی کا انتخاب کرنا ناممکن ہو جاتا ہے (یعنی 1 ایم ایس تاخیر اور ضمانت شدہ واپسی والی کال کو ممکنہ نقل و حمل کی ناکامی کے ساتھ 1 ایس تاخیر والی کال سے بہت مختلف طریقے سے استعمال کیا جائے گا، جس میں ڈیلیوری کی حیثیت ممکنہ طور پر نامعلوم ہے اور وقت ختم ہونے میں 30 سیکنڈ لگ سکتے ہیں)۔ ڈیزائن اور عمل کی خامیاں کوربا معیار کی تخلیق کو اکثر کمیٹی کے ذریعہ اس کے ڈیزائن کے عمل کے لیے بھی حوالہ دیا جاتا ہے۔ متضاد تجاویز کے درمیان ثالثی کرنے یا مسائل سے نمٹنے کے لیے درجہ بندی کا فیصلہ کرنے کا کوئی عمل نہیں تھا۔ اس طرح معیار ان کی ہم آہنگی کی پرواہ کیے بغیر تمام تجاویز میں خصوصیات کا اتحاد لے کر بنایا گیا تھا۔ اس نے تفصیلات کو پیچیدہ، مکمل طور پر لاگو کرنا مہنگا، اور اکثر مبہم بنا دیا۔ عمل درآمد کرنے والے دکانداروں اور صارفین کے امتزاج پر مشتمل ایک ڈیزائن کمیٹی نے متنوع دلچسپیاں پیدا کیں۔ اس تنوع نے ایک مربوط معیار کو مشکل بنا دیا۔ معیارات اور باہمی تعاون نے مسابقت میں اضافہ کیا اور متبادل نفاذ کے درمیان صارفین کی نقل و حرکت کو آسان بنایا۔ اس کی وجہ سے کمیٹی کے اندر بہت زیادہ سیاسی لڑائی ہوئی اور کوربا معیار کے ترمیمات کو بار بار جاری کیا گیا جسے کچھ او آر بی نافذ کرنے والوں نے یقینی بنایا کہ ملکیتی توسیع کے بغیر استعمال کرنا مشکل تھا۔ کم اخلاقی کوربا فروشوں نے کسٹمر لاک ان کی حوصلہ افزائی کی اور مضبوط قلیل مدتی نتائج حاصل کیے۔ وقت گزرنے کے ساتھ ساتھ پورٹیبلٹی کی حوصلہ افزائی کرنے والے او آر بی وینڈرز نے مارکیٹ شیئر پر قبضہ کر لیا۔ نفاذ کے ساتھ مسائل اپنی تاریخ کے ذریعے، کوربا کو ناقص او آر بی نفاذ میں خامیوں کا سامنا رہا ہے۔ بدقسمتی سے کوربا کو ایک معیار کے طور پر تنقید کا نشانہ بنانے والے بہت سے مقالے صرف خاص طور پر کوربا او آر بی کے ناقص نفاذ کی تنقید ہیں۔ کوربا بہت سی خصوصیات کے ساتھ ایک جامع معیار ہے۔ کچھ نفاذ تمام وضاحتیں نافذ کرنے کی کوشش کرتے ہیں، اور ابتدائی نفاذ نامکمل یا ناکافی تھے۔ چونکہ حوالہ عمل درآمد فراہم کرنے کے لیے کوئی تقاضے نہیں تھے، اراکین ایسی خصوصیات پیش کرنے کے لیے آزاد تھے جن کی افادیت یا عمل درآمد کے لیے کبھی جانچ نہیں کی گئی تھی۔ نفاذ میں مزید رکاوٹ معیار کے لفظی ہونے کے عمومی رجحان، اور تمام پیش کردہ تجاویز کے مجموعے کو اپنا کر سمجھوتہ کرنے کے عام عمل کی وجہ سے پیدا ہوئی، جس نے اکثر ایسے API بنائے جو متضاد اور استعمال کرنا مشکل تھے، چاہے انفرادی تجاویز بالکل معقول ہی کیوں نہ ہوں۔ ماضی میں کوربا کے مضبوط نفاذ کو حاصل کرنا بہت مشکل رہا ہے، لیکن اب اسے تلاش کرنا بہت آسان ہے۔ سن جاوا ایس ڈی کے کوربا بلٹ ان کے ساتھ آتا ہے۔ کچھ ناقص طور پر ڈیزائن کیے گئے نفاذ پیچیدہ، سست، مطابقت پذیر اور نامکمل پائے گئے ہیں۔ مضبوط تجارتی ورژن ظاہر ہونے لگے لیکن نمایاں قیمت پر۔ جیسے جیسے اچھے معیار کے مفت نفاذ دستیاب ہوئے خراب تجارتی نفاذ تیزی سے ختم ہو گئے۔ فائر والز کوربا (زیادہ واضح طور پر، جی آئی او پی) کسی خاص مواصلاتی نقل و حمل سے منسلک نہیں ہے۔ جی آئی او پی کی ایک تخصص انٹرنیٹ انٹر-او آر بی پروٹوکول یا آئی آئی او پی ہے۔ آئی آئی او پی ڈیٹا منتقل کرنے کے لیے خام ٹی سی پی/آئی پی کنکشن کا استعمال کرتا ہے۔ اگر کلائنٹ ایک بہت ہی پابند فائر وال یا شفاف پراکسی سرور ماحول کے پیچھے ہے جو صرف پورٹ 80 کے ذریعے باہر سے ایچ ٹی ٹی پی کنکشن کی اجازت دیتا ہے، تب تک مواصلات ناممکن ہو سکتا ہے، جب تک کہ زیر بحث پراکسی سرور ایچ ٹی ٹی پی کنیکٹ طریقہ یا ایس او سی کے ایس کنکشن کی بھی اجازت نہ دے۔ ایک وقت میں، ایک ہی معیاری بندرگاہ کو استعمال کرنے کے لیے نفاذ کو مجبور کرنا بھی مشکل تھا-اس کے بجائے وہ متعدد بے ترتیب بندرگاہوں کا انتخاب کرتے تھے۔ آج تک، موجودہ او آر بی میں یہ خامیاں موجود ہیں۔ اس طرح کی مشکلات کی وجہ سے کچھ صارفین نے کوربا کے بجائے ویب سروسز کا زیادہ استعمال کیا ہے۔ یہ پورٹ 80 کے ذریعے ایکس ایم ایل/ایس او اے پی کا استعمال کرتے ہوئے بات چیت کرتے ہیں، جسے عام طور پر ایچ ٹی ٹی پی کے ذریعے ویب براؤزنگ کے لیے تنظیم کے اندر ایچ ٹی ٹی پی پراکسی کے ذریعے کھلا یا فلٹر کیا جاتا ہے۔ حالیہ کوربا کے نفاذ، اگرچہ، ایس ایس ایل کی حمایت کرتے ہیں اور آسانی سے ایک ہی بندرگاہ پر کام کرنے کے لیے ترتیب دیے جا سکتے ہیں۔ کچھ او آر بی ایس، جیسے ٹی اے او، اومنی او آر بی اور جیکور بی بھی دو طرفہ جی آئی او پی کی حمایت کرتے ہیں، جو کوربا کو ویب سروس کے نفاذ کی خصوصیت والے رائے شماری کے نقطہ نظر کے بجائے کال بیک مواصلات کو استعمال کرنے کے قابل ہونے کا فائدہ دیتا ہے۔ اس کے علاوہ، زیادہ تر جدید فائر والز جی آئی او پی اور آئی آئی او پی کی حمایت کرتے ہیں اور اس طرح کوربا دوستانہ فائر والز ہیں۔ سافٹ ویئر انجینئرنگ اجزاء پر مبنی سافٹ ویئر انجینئرنگ ڈسٹری بیوٹڈ کمپیوٹنگ پورٹیبل آبجیکٹ سروس پر مبنی فن تعمیر (SOA) اجزاء پر مبنی سافٹ ویئر ٹیکنالوجیز Freedesktop.org D-Bus-موجودہ کھلی کراس لینگویج کراس پلیٹ فارم آبجیکٹ ماڈل GNOME Bonobo-فرسودہ GNOME کراس لینگویج آبجیکٹ ماڈل KDE DCOP-فرسودہ KDE انٹر پروسس اور سافٹ ویئر اجزاء مواصلاتی نظام KDE KParts-KDE جزو فریم ورک جزو آبجیکٹ ماڈل (COM)-مائیکروسافٹ ونڈوز صرف کراس لینگویج آبجیکٹ ماڈل DCOM (ڈسٹری بیوٹڈ COM)-توسیع COM کو نیٹ ورک کامن لینگویج انفراسٹرکچر-موجودہ. NET کراس لینگویج کراس پلیٹ فارم آبجیکٹ ماڈل XPCOM میں کام کرنے کے قابل موزیلا ایپلی کیشن سویٹ، سی منکی 1. x) آئی بی ایم سسٹم آبجیکٹ ماڈل ایس او ایم اور ڈی ایس او ایم-او ایس/2 اور اے آئی ایکس انٹرنیٹ کمیونیکیشن انجن (آئی سی ای) جاوا ریموٹ میتھڈ انوکیشن (جاوا آر ایم آئی) جاوا پلیٹ فارم، انٹرپرائز ایڈیشن (جاوا ای ای) جاوا بین اوپن اے آئی آر ریموٹ پروسیجر کال (آر پی سی) ونڈوز کمیونیکیشن فاؤنڈیشن (ڈبلیو سی ایف) سافٹ ویئر کمیونیکیشنز آرکیٹیکچر (ایس سی اے)-ایمبیڈڈڈ سسٹمز، کراس لینگویج، کراس ٹرانسپورٹ، کراس پلیٹ فارم لینگویج بائنڈنگز کے اجزاء کالنگ کنونشن ڈائنامک انویکیشن نام مینگلنگ ایپلی کیشن پروگرامنگ انٹرفیس-اے پی آئی ایپلی کیشن بائنری انٹرفیس-اے بی آئی ایپلی کیشن ورچوئل مشینوں کا موازنہ