XRX (web application architecture)
سافٹ ویئر ڈویلپمنٹ میں XRX ایک ویب ایپلیکیشن فن تعمیر ہے جو XForms، REST اور XQuery پر مبنی ہے۔ ایکس آر ایکس ایپلی کیشنز ڈیٹا کو ویب کلائنٹ اور ویب سرور دونوں پر ایکس ایم ایل فارمیٹ میں محفوظ کرتی ہیں اور ڈیٹا فارمیٹس کے درمیان ترجمہ کی ضرورت نہیں ہوتی ہے۔ کلائنٹ اور سرور سسٹمز کے درمیان ڈیٹا کی نقل و حمل کے لیے درکار ترجمے کی کم سے کم تعداد کی وجہ سے ایکس آر ایکس کو ایک سادہ اور خوبصورت ایپلیکیشن فن تعمیر سمجھا جاتا ہے۔ ایکس آر ایکس فن تعمیر کو ڈبلیو 3 سی معیارات (سی ایس ایس، ایکس ایچ ٹی ایم ایل 2، ایکس پیتھ، ایکس ایم ایل اسکیما) کے ساتھ بھی مضبوطی سے جوڑا گیا ہے تاکہ یہ یقینی بنایا جا سکے کہ مستقبل میں ایکس آر ایکس ایپلی کیشنز مضبوط ہوں گی۔ چونکہ ایکس آر ایکس ایپلی کیشنز کلائنٹ پر جدید اعلانیہ زبانوں اور سرور پر فعال زبانوں کا فائدہ اٹھاتی ہیں اس لیے انہیں غیر ڈویلپرز کو بااختیار بنانے کے لیے ڈیزائن کیا گیا ہے جو جاوا اسکرپٹ، جاوا یا. نیٹ جیسی روایتی لازمی زبانوں سے واقف نہیں ہیں۔ ایکس آر ایکس ایکس آر ایکس کا جائزہ ایک صفر ترجمہ ایپلیکیشن فن تعمیر ہے جو کلائنٹ ویب براؤزر، ایپلیکیشن سرور اور ڈیٹا بیس سرور میں ڈیٹا اسٹور کرنے کے لیے ایکس ایم ایل کا استعمال کرتا ہے۔ اس کی وجہ یہ ہے کہ ان میں سے ہر ایک پرت ایکس ایم ایل کو ایک ہی ساختی ڈیٹا ماڈل کے طور پر استعمال کرتی ہے کہ ایکس آر ایکس ایپلی کیشنز کو ڈیٹا ڈھانچے کو آبجیکٹ اور ریلیشنل ڈیٹا ڈھانچے دونوں میں ترجمہ کرنے کی ضرورت نہیں ہے۔ ترجمہ کی ضرورت نہ ہونے کی وجہ سے، ایکس آر ایکس کو صاف ستھرا اور خوبصورت ڈیزائن سمجھا جاتا ہے۔ ایکس آر ایکس ویب ایپلیکیشن فن تعمیر ڈویلپرز کو کاروباری مسئلے پر توجہ مرکوز کرنے کی اجازت دیتا ہے نہ کہ ترجمے کے مسئلے پر۔ سافٹ ویئر ٹیکنالوجی میں کئی پیشرفتوں سے ایکس آر ایکس کو فائدہ ہوتا ہے: کلائنٹ آرکیٹیکچرل خصوصیات ایک ماڈل ویو کنٹرولر (ایم وی سی) فن تعمیر جو ڈیٹا کو اس کی پریزنٹیشن اور کاروباری منطق سے الگ کرتا ہے۔ تمام سرور سبمیشنز کے لیے ایک واحد عنصر (xf: جمع)۔ یہ زیادہ تر AJAX ایپلی کیشنز میں درکار زیادہ تر جاوا اسکرپٹ کوڈ کی جگہ لے لیتا ہے۔ ڈبلیو 3 سی معیارات کے مطابق ایک جدید ایونٹ ماڈل (ایکس ایم ایل ایونٹس) جو ایپلی کیشنز کو وینڈر کے لیے مخصوص اور براؤزر کے لیے مخصوص ایونٹ ہینڈلنگ سے نمٹنے سے آزاد کرتا ہے۔ ایک انحصار گراف جو کلائنٹ کنٹرولرز کے انحصار کے ڈھانچے کو ذخیرہ کرنے کے لیے استعمال ہوتا ہے۔ یہ ڈویلپر کو کسی ایپلیکیشن میں ڈیٹا تبدیل ہونے پر ماڈل یا ویوز کو دستی طور پر اپ ڈیٹ کرنے سے آزاد کرتا ہے۔ یہ اسپریڈشیٹ جیسی ایپلی کیشنز کو کلائنٹ پر بہت کم کوشش کے ساتھ بنانے کی اجازت دیتا ہے۔ ایک اعلانیہ پروگرامنگ سٹائل جو زیادہ تر کلائنٹ ایکسفارم ایپلی کیشنز کو تقریبا 20 عناصر کے ایک چھوٹے سے سیٹ کا استعمال کرتے ہوئے بنانے کی اجازت دیتا ہے۔ یہ جاوا اسکرپٹ یا دیگر طرز عمل کی اسکرپٹنگ زبانوں کے علم کے بغیر بھرپور کلائنٹ ایپلی کیشنز بنانے کی اجازت دیتا ہے۔ EXtensible Bindings Language کا استعمال کرتے ہوئے نئے یوزر انٹرفیس کنٹرولز بنانے کے لیے ایک آسان توسیعی نظام۔ یہ ڈویلپرز کو W3C معیارات کے ساتھ مطابقت نہ ہونے کے خوف کے بغیر کسی بھی وقت نئے کنٹرول شامل کرنے کی اجازت دیتا ہے۔ سرور آرکیٹیکچر کی خصوصیات بہت سے مقامی ایکس ایم ایل ڈیٹا بیس میں بلٹ ان آر ای ایس ٹی انٹرفیس ہوتے ہیں جو ہر ایکس کوری کو فطری طور پر ایک آر ای ایس ٹی فل ویب سروس بناتے ہیں۔ ایک فنکشنل پروگرامنگ ماڈل جو سائیڈ ایفیکٹ فری سسٹمز کو فروغ دیتا ہے جنہیں ڈیبگ کرنا آسان ہوتا ہے اور متعدد پروسیسرز پر چلانا آسان ہوتا ہے۔ XQuery فنکشن اور ماڈیولز کا استعمال کرتے ہوئے ایک آسان توسیع کا نظام۔ کلائنٹ اور سرور دونوں ایکس آر ایکس کلائنٹ اور سرور اجزاء ایکس پیتھ، ایکس ایم ایل اسکیما اور ایکس ایم ایل نیم اسپیس جیسے ایکس ایم ایل سے متعلق معیارات کی ایک وسیع رینج کی حمایت کرتے ہیں۔ ڈیٹا کی تمام منتقلی کے لیے کلائنٹ اور سرور کے درمیان ڈیٹا کے تبادلے کے لیے آر ای ایس ٹی انٹرفیس کا مستقل استعمال بشمول آپ کی قسم کے ڈیٹا کی جانچ اور افعال تجویز کرنا۔ ایکس پیتھ اور ایکس ایم ایل اسکیما ڈیٹا اقسام کے استعمال سمیت ڈبلیو 3 سی معیارات کا مستقل انضمام کلائنٹ اور سرور دونوں پر استعمال ہونے والے افعال کی معیاری لائبریری۔ ایکس آر ایکس کے مجموعی فوائد ایکس آر ایکس فن تعمیر کے بنیادی فوائد میں سے ایک یہ ہے کہ یہ پیچیدہ ڈیٹا ڈھانچے کو رشتہ دار ڈھانچے میں "ٹکڑے ٹکڑے" کرنے کی ضرورت سے بچتا ہے اور پھر ریکارڈ کرتے وقت ڈیٹا کو ڈھانچے میں دوبارہ تشکیل دیتا ہے۔ ایکس آر ایکس ویب ایپلی کیشن آرکیٹیکچر کا ایک اور فائدہ یہ ہے کہ یہ آبجیکٹ ریلیشن امپیڈینس مماثلت کے آس پاس کے زیادہ تر مسائل سے بچتا ہے۔ ایک اور فائدہ یہ ہے کہ کلائنٹ ڈویلپر کو کلائنٹ پر جاوا اسکرپٹ سیکھنے کی ضرورت نہیں ہے۔ روایتی آبجیکٹ/ریلیشنل ویب ایپلی کیشن آرکیٹیکچرز کے ساتھ موازنہ 1990 کے آخر میں بنائے گئے بہت سے روایتی ویب ایپلی کیشن آرکیٹیکچرز مڈل آبجیکٹ ٹائرز اور استقامت تہوں پر مبنی تھے جو ٹیبلولر ڈیٹا اسٹریمز اور ریلیشنل ڈیٹا بیس سسٹم کا استعمال کرتے تھے۔ چونکہ ان میں سے ہر ایک پرت ماڈل کو ذخیرہ کرنے کے لیے مختلف ڈھانچے استعمال کرتی تھی اس لیے نظام کو تہوں کے درمیان ترجمہ کرنے کے لیے بہت زیادہ اضافی پیچیدگی کی ضرورت ہوتی تھی۔ ایکس آر ایکس کی تاریخ کثیر درجے کے نظاموں میں صفر ترجمہ فن تعمیر کے استعمال کی ابتدائی مثالوں کا سراغ 1990 کی دہائی میں آبجیکٹ پر مبنی ڈیٹا بیس کے عروج سے لگایا جا سکتا ہے۔ او او ڈی بی ایم ایس ہسٹری دیکھیں مارک بربیک نے تجویز کیا کہ ستمبر 2006 میں یوکے ایکس ایم ایل یوزر گروپ سے ملاقات میں دونوں کے درمیان ایکس فارمز، ایکس کوری کے ساتھ آر ای ایس ٹی انٹرفیس کے امتزاج کے بہت سے فوائد تھے۔ ان کی پریزنٹیشن ان اولین پیشکشوں میں سے ایک تھی جس میں خاص طور پر یہ تجویز کیا گیا تھا کہ تین ٹیکنالوجیز: ایکس فارمز اور ایکس کوری کا آر ای ایس ٹی انٹرفیس کے ساتھ امتزاج حیرت انگیز طور پر فائدہ مند اثرات مرتب کرے گا۔ مارک نے اس عمل کو "سکیمنگ" قرار دیا لیکن یہ اصطلاح متعدی نہیں لگتی تھی۔ اوربین کے ایرک بروچز نے دسمبر 2007 میں بوسٹن پر ایکس ایم ایل 2007 کانفرنس میں خطاب کیا۔ اپنی پریزنٹیشن "ایکس فارمز اینڈ دی ایکسسٹ ایکس ایم ایل ڈیٹا بیس: ایک کامل جوڑا" میں، بروچز نے دکھایا کہ بہت سے لوگ کلائنٹ پر ایکس فارمز اور سرور پر ایکس کوری کے ہم آہنگ فوائد دریافت کر رہے تھے۔ ایکس آر ایکس کے لیے لیبل 14 دسمبر 2007 کو ڈین میک کریری کے بلاگ پوسٹنگ کے ذریعے تجویز کیا گیا تھا۔ اس مضمون میں ہی ڈین نے ایکس آر ایکس فن تعمیر کے پیچھے کے خیالات کے لیے ایک متعدی میم کی ضرورت کا مشورہ دیا تھا۔ اگرچہ XRX کا اصل مقصد کلائنٹ پر XForms، ایک انٹرفیس کے طور پر REST اور سرور پر XQuery کے استعمال کو ظاہر کرنا تھا، کلائنٹ اور سرور پر XML کے متناسب استعمال کے دیگر حامیوں نے کسی بھی XML-مرکوز ویب کلائنٹ اور کسی بھی سرور کو شامل کرنے کے لیے اصطلاح کو عام کیا ہے جو XML دستاویزات کو اسٹور اور استفسار کر سکتا ہے۔ ایکس آر ایکس کے اس استعمال کو عام طور پر "اتلی ایکس آر ایکس" کہا جاتا ہے۔ یہ عامیاں ایک آسان صفر ترجمہ فن تعمیر سے فائدہ اٹھاتی ہیں لیکن بہت سے لوگ REST انٹرفیس، مستقل ڈیٹا کے انتخاب کے لیے XPath، کلائنٹ میں اعلانیہ نظام، اور سرور پر فعال زبانوں (XRX کے کلیدی پہلوؤں میں سے ایک) سے فائدہ نہیں اٹھاتے ہیں۔ تینوں ٹیکنالوجیز (ایکس فارمز، آر ای ایس ٹی اور ایکس کوری) کے استعمال کو "ڈیپ ایکس آر ایکس" کہا جاتا ہے۔ اگرچہ ایکس آر ایکس فن تعمیر ایکس فارمز اور ایکس کوری پر مرکوز ہے، لیکن یہ دوسری ٹیکنالوجیز کے استعمال کو روکتا نہیں ہے جو ایکس ایم ایل کو مقامی طور پر جوڑتی ہیں، جیسے کہ ایکس ایس ایل ٹی، ایکس پروک، اور ایکس ایس ایل-ایف او۔ ویب ایپلی کیشن فریم ورک حوالہ جات اضافی وسائل XRX: سادہ، خوبصورت، ڈین میک کریری کی طرف سے خلل ڈالنے والا XRX ڈویلپرز کے لیے گوگل کوڈ ذخیرہ میٹافورکل ویب اور کرٹ کیگل کی طرف سے XRX سوالات جینی ٹینیسن کی طرف سے ایکسسٹ ڈیٹا بیس کا استعمال کرتے ہوئے XRX، جینی ٹینیسن کی طرف سے اوربین فارمز کے ساتھ URLS کی نقشہ سازی XRX، جینی ٹینیسن کی طرف سے کارکردگی کا مظاہرہ XRX، ڈین میک کریری کی طرف سے لاکنگ گرین ڈیزائن XRX، وکی بک XRX، ویکی بک کے ساتھ ایکزسٹ ڈیٹا بیس کا استعمال کرتے ہوئے CRUDS ایپلی کیشن بنانے کے لیے سبق کے ساتھ جیسن مونبرگ جیسی الاما کے بلاگ پر ایجائل اسٹیک